Скрыть кнопку «Отменить подписку WooCommerce» на панели пользователя

Я работаю над проектом, который использует WooCommerce и плагин All Products for WooCommerce Subscription, позволяющий нашим пользователям подписаться на подписку и получить скидку. Мы хотели бы установить минимальный период времени, в течение которого клиенты должны будут подписаться на подписку. Я провел небольшое исследование по этому поводу, и похоже, что официальный плагин WooCommerce просто скрывает кнопку «отменить» на панели управления подпиской пользователя до тех пор, пока он не достигнет назначенного срока. Конечно, они взимают с вас плату за эту функцию, и кажется, что должно быть очень просто скрыть кнопку отмены, пока их подписка не будет активна в течение определенного периода времени, но я не могу найти список перехватчиков, имеющих что связано с подписками WooCommerce. Как мне проверить первоначальную дату активации подписки, а затем на основе этого скрыть кнопку отмены?

Я попробовал это, чтобы проверить скрытие кнопки отмены, но кнопка отмены все равно отображается:

add_filter('woocommerce_subscriptions_admin_order_item_actions', 'hide_cancel_button_if_less_than_3_weeks_active', 10, 2);

function hide_cancel_button($actions, $subscription) { 
    unset($actions['cancel']);

    return $actions;
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо этого вы можете попробовать использовать фильтр wcs_view_subscription_actions следующим образом:

add_filter('wcs_view_subscription_actions', 'delay_user_action_cancel_button', 10, 3 );

function delay_user_action_cancel_button( $actions, $subscription, $user_id ) {
    // Check that 'cancel' action button is active
    if ( ! isset($actions['cancel']) ) return $actions;

    $start_date = $subscription->get_date('start'); // Get the start date
    $days_period = 15; // Here define the "designated time limit" in days

    if ( strtotime($start_date) + ( $days_period * DAY_IN_SECONDS ) >= time() ) {
        unset($actions['cancel']);
    }
    return $actions;
}

Код находится в файле function.php вашей дочерней темы (или в плагине). Это может сработать.

Другие вопросы по теме