Автозаполнение исключенных товаров в купонах WooCommerce - PullRequest
1 голос
/ 15 апреля 2019

Я ищу способ не исключать продукты из купонов вручную на основе идентификатора продукта, к которому должен применяться купон. Таким образом, создайте массив всех идентификаторов продуктов в магазине, который затем заполнит поле исключенных продуктов минус идентификатор продукта (или идентификаторы), который делает купон относится к.

Я собирался использовать " Отключить купоны и скидки от применения к определенным продуктам Woocommerce в корзине " ответить, внеся в него некоторые изменения, но я новичок в WP / WC запросы и функции, я еще не получил что-то функциональное.

1 Ответ

1 голос
/ 15 апреля 2019

Попробуйте следующее, где:

  • в первой функции вы определите массив идентификаторов товаров, которые будут исключены из купонов.
  • вторая функция удалит включенные идентификаторы товаровиз массива исключенных идентификаторов продукта и установит его в купоне при сохранении.

Код:

function my_coupons_excl_product_ids() {
    // HERE set in the array your product IDs to be excluded
    return array(17, 37, 52, 123, 124, 152, 154);
}

// On coupon save
add_action('woocommerce_coupon_options_save', 'action_coupon_options_save_callback', 10, 2);
function action_coupon_options_save_callback( $post_id, $coupon ) {
    $included_ids = (array) $coupon->get_product_ids();

    if( size_of($included_ids) > 0 ) {
        $excl_product_ids = array_diff( my_coupons_excl_product_ids(), $included_ids ); // Get the difference
        $coupon->set_excluded_product_ids( array_filter( array_map( 'intval', (array) $excl_product_ids ) ) );
        $coupon->save();
    }
}

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

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