Membermouse — Как отображать контент за конечный период времени, WordPress

Я работаю над сайтом WordPress подписки MemberMouse. На определенной странице пользователя я хочу отображать контент в течение ограниченного периода времени. То же самое должно войти в виджет.

[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 в этом отношении).
Другими словами, если мы хотим показать Джону наш «Супер удивительный контент» на 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 дней.

Затем мы проверяем, чтобы убедиться, что он не имеет доступа к комплекту с идентификатором № 2.

И если все эти условия соблюдены, мы отображаем текст «ЗДЕСЬ ДОЛЖЕН БЫТЬ СОДЕРЖАНИЕ ИЛИ КАРТИНА».

Затем закрываем оператор PHP.

Все идет нормально. Тем не менее, я уже несколько дней пытаюсь реализовать этот вопрос в виджете или на странице. Поскольку это PHP-код, это немного сложнее. Кроме того, я не уверен, что код PHP даже правильный. Это было просто предположение, которое я нашел в Интернете.

Любое решение этой проблемы будет оценено.

Спасибо,
Aron

1

Решение

Первое, что вы должны сделать, это создать виджет. Вы можете сделать это, используя 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' );
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]