Принудительный купон Woocommerce до размещения заказа - PullRequest
0 голосов
/ 24 октября 2019

Мне нужно применить купон WC (продается как продукт) к другому конкретному продукту (или категории), прежде чем перейти к оформлению заказа / оформлению заказа. В этом случае купон (используя плагин Woo-commerce Smart Coupon) продается как «кредит сообщения», который необходимо использовать для отправки онлайн-сообщений (10 сообщений на купон). Отправка онлайн-сообщения (электронной карты) - это продукт, который можно купить только за кредиты (с применением купона). Проданы другие услуги, которые я вообще не хочу разрешать использовать купоны.

Я нашел код, показанный ниже в другом посте здесь, о переполнении стека, и использовал плагин Code Snippets, чтобы добавить его в тему. файл функций. Я изменил значение в массиве категорий, чтобы он соответствовал категории продукта, для которого требуется принудительное использование купона. Но он выводит сайт с ошибкой в ​​строке 18: Uncaught Error: вызов функции-члена get_applied_coupons () при нулевом входе. ,.

// Force Coupon codes for Woocommerce
add_action('woocommerce_check_cart_items', 'mandatory_coupon_code');
function mandatory_coupon_code()
{
// set Here your categories IDs, slugs or names
$categories = array(18,19,87);
$found = false;

// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) 
    if( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ){
        // Product category found in cart items
        $found = true;
        // Exit from loop
        break;
    }
}
$coupons = WC()->cart->get_applied_coupons();

// The Notice is displayed for that product categories when no mandatory coupon has been entered
if( count( $coupons ) > 0 && $found )
    wc_add_notice( __( 'A coupon code is mandatory for this product.', 'woocommerce' ), 'error' );

Я использую последнюю версию Woo-commerce и WordPress.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...