2017-02-22 32 views
5

Я разрабатываю веб-сайт в WordPress с WooCommerce. Я использую дополнительно WC Paid Listings и WooCommerce Subscriptions плагины для обработки моей работы.Обнаружение, если текущий пользователь имеет активную подписку

Проблема заключается в том, что пользователь с ролью «подписчика» с активным подпиской на подписку и каждый раз, когда он/она должен выбрать пакет, пытается выбрать контент, даже если у него активная подписка.

Есть ли кто-нибудь с идеей о том, как обнаруживает, имеет ли пользователь активную подписку, если он возвращает true, тогда шаг выбора пакета пропустит?

Спасибо.

ответ

4

Вот пользовательская условная функция, которая имеет необязательный аргумент $ user_id (определенный user_id).

Эта условная функция возвращает true, если текущий пользователь (или определенный пользователем) имеет активные подписки:

function has_active_subscription($user_id=null) { 

    // if the user_id is not set in function argument we get the current user ID 
    if(null == $user_id) 
     $user_id = get_current_user_id(); 

    // Get all active subscrptions for a user ID 
    $active_subscriptions = get_posts(array(
     'numberposts' => -1, 
     'meta_key' => '_customer_user', 
     'meta_value' => $user_id, 
     'post_type' => 'shop_subscription', // Subscription post type 
     'post_status' => 'wc-active', // Active subscription 

    )); 
    // if 
    if(!empty($active_subscriptions)) return true; 
    else return false; 
} 

код идет в function.php файл вашей активной темы ребенка (или темы), или также в любом файле плагина.


Обновление использования:

1) Использование для текущего пользователя:

if(has_active_subscription()){ // Current user has an active subscription 
    // do something … here goes your code 

    // Example of displaying something 
    echo '<p>I have active subscription</p>'; 
} 

2) Использование для определенного идентификатора пользователя:

if(has_active_subscription(26)){ // Defined User ID has an active subscription 
    // do something … here goes your code 

    // Example of displaying something 
    echo '<p>User ID "26" have an active subscription</p>'; 
} 

Этот код проверено и работает


Похожие ответы:

+0

Спасибо Loic Кажется, что коды работают, но проблема в том, что когда я перенаправляю страницу, появляется следующая ошибка. Предупреждение: невозможно изменить информацию заголовка - уже отправленные заголовки (вывод запущен в/home2/xxx/xxxx/wp-content/темы/jobsdojo/header.php: 13) в /home2/xxx/public_html/quickextra/wp-includes/pluggable.php в строке 1174. пожалуйста, еще один совет может помочь – Knight

+0

Спасибо @ Loic TheAztec, что я пытался переопределить пакет- selection.php – Knight

 Смежные вопросы

  • Нет связанных вопросов^_^