Membermouse - 如何在有限的时间内显示内容,Wordpress

时间:2017-08-02 18:04:03

标签: php wordpress membership

我正在使用MemberMouse订阅Wordpress网站。在特定用户页面上,我想在有限的时间段内显示内容。同样应该进入一个小部件。

[MM_Member_Decision membershipId='1'  daysAsMember='1' daysAsMember='-3']

**HERE SHOULD BE CONTENT OR A PICTURE** 

[/MM_Member_Decision]

基本上,我希望能够在一段有限的时间内(例如仅24小时)为我的会员显示内容。 我希望能够在成员的生命周期中随时进行此操作(例如,他们加入后7天,加入后30天等)

通常SmartTags看起来如上所述,文档如下:

[MM_Member_Decision membershipId='1' daysAsMember='7']
This content will be displayed if the viewing member has been a member of membership level with ID #1 for at least 7 days.
[/MM_Member_Decision]

[MM_Member_Decision membershipId='1' daysAsMember='-10']
This content will be displayed if the viewing member has been a member of membership level with ID #1 for no more than 10 days.
[/MM_Member_Decision]

尽管这很有用,但是MemberMouse不允许我们同时为daysAsMember参数(或者daysWithBundle参数)定义正值和负值。 换句话说,如果我们想向John展示我们的超级内容"在他的会员资格的第7天,并在第8天再次隐身(因此使其成为24小时可用的可用窗口),我们无法与MemberMouse一起开箱即用。

我在网上发现了这个解决方案:

<?php if(mm_member_decision(array("daysAsMember"=>"1")) && mm_member_decision(array("daysAsMember"=>"-3")) && (mm_member_decision(array("hasBundle"=>"2")) == false)) { echo '"13")) . '">**HERE SHOULD BE CONTENT OR A PICTURE**  ; } ?>

您会注意到第一个PHP代码检查以确保该成员已成为会员1天。

第二个标签检查以确保他未成为会员超过3天。

然后我们检查以确保他无法访问ID号为2的捆绑包。

如果满足所有这些条件,我们会显示文字&#34; 这里应该是内容还是图片&#34;。

然后关闭PHP语句。

到目前为止一切顺利。但是,我正在尝试几天如何将这个问题实现到窗口小部件或页面中。因为它是一个PHP代码,所以有点困难。另外,我不确定PHP代码是否正确。这只是我在网上发现的假设。

对此问题的任何解决方案都将不胜感激。

谢谢, 阿隆

1 个答案:

答案 0 :(得分:0)

您要做的第一件事是创建一个小部件。您可以使用Widgets API执行此操作。然后你可以把你想要的任何PHP代码放在小部件的实例中。

这样的事情应该让你开始(在functions.php或其他主题文件中)

class MemberMouseFiniteContent extends WP_Widget {
    function __construct(){
        parent::__construct('mm-finite-content',
            'MemberMouse Finite Content',
            array('description' => 'A widget for displaying content in a time window')
        );
    }

    // front-end
    public function widget($args,$instance){
        if( mm_member_decision(array("daysAsMember"=>"1")) 
            && mm_member_decision(array("daysAsMember"=>"-3")) 
            && (mm_member_decision(array("hasBundle"=>"2")) == false)
        ) { 
                echo 'HERE SHOULD BE CONTENT OR A PICTURE';
        }
    }

    public function form($instance){
        // if you want to configure the widget put the form here. 
        // @see https://codex.wordpress.org/Widgets_API
    }

    public function update($new,$old){
        return $new;
    }
}

// register the widget
add_action( 'widgets_init', function(){
    register_widget( 'MemberMouseFiniteContent' );
});