2017-08-02 81 views
1

我正在MemberMouse訂閱Wordpress網站上工作。在特定的用戶頁面上,我想在有限的時間內顯示內容。同樣應該進入一個小部件。Membermouse - 如何顯示有限的時間內容,Wordpress

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

**HERE SHOULD BE CONTENT OR A PICTURE** 

[/MM_Member_Decision] 

基本上,我希望能夠在有限的時間內(例如24小時)爲我的會員顯示內容。 我希望能夠在會員的生命週期中隨時做到這一點(例如,他們加入後7天,加入後30天等)

通常智能標籤看起來像上面,文檔如下:

[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參數)。 換句話說,如果我們想在約會第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

而如果所有這些條件都滿足,我們顯示文本「在這裏需要內容或圖片捆綁 」。

然後關閉PHP語句。

到目前爲止這麼好。但是,我正在嘗試幾天後如何將這個問題實現到一個小部件或頁面中。由於它是一個PHP代碼,它有點難度。另外,我不確定PHP代碼是否正確。這只是我在網上找到的一個假設。

任何解決這個問題的方法將不勝感激。

感謝, 阿隆

回答

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'); 
});