Я работаю над сайтом 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
Первое, что вы должны сделать, это создать виджет. Вы можете сделать это, используя 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' );
});
Других решений пока нет …