Как исключить продукт WooCommerce из купонов

Опубликовано: 2021-11-02

Вы ищете способы более эффективно использовать свои коды скидок? У нас есть кое-что для вас. В этом руководстве мы покажем вам различные способы исключения продукта WooCommerce из купонов , чтобы к ним не применялись скидки.

Сейчас, когда приближаются Черная пятница и Рождество, многие интернет-магазины начинают предлагать скидки и акции. Когда вы настраиваете свои купоны на скидку и делитесь ими в Интернете, вы хотите убедиться, что они не приведут к значительному снижению вашей прибыли. Если ваши продажи выросли на 25%, а прибыль за продажу уменьшилась на 50%, лучше не предлагать никаких скидок.

Найти правильный баланс между увеличением продаж и прибылью с каждой продажи не всегда легко. Один из лучших способов сделать это — оставить определенные товары без скидок. Вы можете использовать определенные товары со скидкой, такие как крючки, а затем попытаться продать своим клиентам другие продукты, на которые нет скидок.

В этом руководстве мы покажем вам различные способы исключения продуктов WooCommerce из купонов , чтобы на них не распространялись скидки.

Зачем исключать товары из купонов?

Использование купонов на скидку — это обычная маркетинговая стратегия, используемая многими магазинами WooCommerce для увеличения продаж. При разумном использовании скидки могут быть выгодны для онлайн-бизнеса. Однако они также могут привести к падению доходов, если они применяются неправильно, а увеличение продаж, по крайней мере, не соответствует падению цен.

Кроме того, с большими каталогами также могут быть лазейки, которыми могут воспользоваться ваши клиенты. Например, вы можете не захотеть применять скидку к пакетному продукту, к которому уже применена скидка. Точно так же вы можете потерять деньги, если клиенты воспользуются скидкой на продукты, которые уже имеют низкую прибыль.

Вот почему это хороший вариант, чтобы исключить определенные продукты WooCommerce из купонов на скидку. Таким образом, вы можете создать столько купонов и кодов на скидку, сколько захотите, при этом убедившись, что они не повлияют на эти конкретные продукты.

Давайте посмотрим, как вы можете это сделать и какие инструменты вы можете использовать, чтобы исключить товары из скидок.

Как исключить продукт WooCommerce из купонов

Есть два основных способа исключить продукты WooCommerce из купонов на скидку:

  1. С параметрами WooCommerce по умолчанию
  2. Программно

Давайте рассмотрим каждый вариант более подробно.

1) Исключить продукт WooCommerce из купонов, используя параметры WooCommerce по умолчанию

WooCommerce предоставляет вам возможность отключить определенные купоны для определенных продуктов и категорий. Чтобы получить доступ к этим параметрам, перейдите в WooCommerce > Купоны на панели администратора WordPress.

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

исключить продукт woocommerce из купонов - вкладка купоны

Здесь вы можете использовать параметры « Исключить продукт» и « Исключить категории », чтобы исключить определенные продукты из этого конкретного купона. Просто введите название продукта в поле « Исключить продукт » или категорию продукта в поле « Исключить категории ». Например, если вы не хотите применять скидки к продукту 15 и наборам продуктов, вы должны сделать что-то вроде этого.

исключить продукт woocommerce из купонов - ограничения купонов

Теперь этот конкретный купон не будет применяться к этим продуктам . Однако обратите внимание, что все другие купоны, применимые к этому товару, будут работать, если вы не повторите этот процесс для другого купона.

исключить продукт woocommerce из купонов - исключенный продукт

Если у вас много купонов, этот процесс может занять много времени, потому что вам придется идти один за другим и добавлять продукты, которые вы хотите исключить. Хорошая новость заключается в том, что есть более эффективный способ сделать это с помощью кода. Давайте посмотрим, как можно программно исключить продукты WooCommerce из всех купонов.

2) Программно исключить продукт WooCommerce из купонов

Вы также можете программно исключить продукт WooCommerce из купонов на скидку. Преимущество этого метода заключается в том, что он дает вам большую гибкость, чтобы убедиться, что скидки не применяются к определенным товарам. Например, вы можете отключить определенные идентификаторы продуктов для купонов или добавить флажок в параметры данных продукта WooCommerce.

Давайте посмотрим, как можно включить некоторые из этих параметров.

ПРИМЕЧАНИЕ . Поскольку мы будем редактировать некоторые основные файлы, прежде чем мы начнем, мы рекомендуем вам создать резервную копию вашего сайта и установить дочернюю тему, если у вас ее еще нет.

2.1) Исключить продукты WooCommerce из купонов, используя идентификатор продукта

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

Для этого вам нужно сначала найти идентификатор продукта. Для этого откройте панель администратора WordPress , перейдите в раздел « Продукты », и вы увидите список всех ваших продуктов WooCommerce. Наведите указатель мыши на продукт, к которому вы не хотите применять скидки, и вы увидите идентификатор продукта.

исключить продукт woocommerce из купонов - идентификатор продукта

Запишите его и оставьте где-нибудь под рукой, потому что он понадобится вам для следующего шага.

После этого откройте файл функций темы , выбрав « Внешний вид» > «Редактор темы» . Затем используйте правую боковую панель Theme Files и откройте файл functions.php .

исключить продукты woocommerce из купонов - функции редактора темы

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

 add_filter('woocommerce_coupon_is_valid_for_product', 'quadlayers_exclude_product_from_product_promotions', 9999, 4 );
function quadlayers_exclude_product_from_product_promotions($valid, $product, $coupon, $values) {
// ЗАМЕНЯЕМ ИДЕНТИФИКАТОР ПРОДУКТА (например, 145)
если (PRODUCT_ID == $product->get_id()) {
$ действительный = ложь;
}
вернуть $ действительный;
}

Код исключает из скидок идентификаторы товаров, которые мы указываем. Например, в нашем случае ID продукта 145, поэтому фрагмент кода будет таким:

 add_filter('woocommerce_coupon_is_valid_for_product', 'quadlayers_exclude_product_from_product_promotions', 9999, 4 );
function quadlayers_exclude_product_from_product_promotions($valid, $product, $coupon, $values) {
// ИДЕНТИФИКАТОР ПРОДУКТА = 145
если ( 145 == $product->get_id() ) {
$ действительный = ложь;
}
вернуть $ действительный;
} 

Вот и все! Указанный вами продукт будет исключен из всех ваших купонов. Для получения дополнительной информации об этом посетите этот сайт.

2.2) Исключить продукты WooCommerce со скидкой из купонов на скидку

Еще один интересный вариант — исключить из кодов купонов товары, на которые уже действует скидка. Например, если у вас есть товары, которые уже продаются со скидкой, вы можете добавить скрипт, чтобы они не получали дополнительную скидку. Это очень полезно, когда в вашем магазине проводится рекламная акция, и вы хотите убедиться, что ваши скидки не применяются ни к одному из товаров, которые продаются со скидкой.

Процесс для этого аналогичен описанному выше. Просто перейдите в раздел « Внешний вид» > «Редактор тем» на панели администратора и откройте файл functions.php на правой боковой панели файлов темы. Затем вставьте следующий скрипт, чтобы исключить из скидки все товары, которые уже есть в продаже.

 add_filter('xa_pbu_skip_product_on_sale','ql_skip_product_on_sale_from_discount',1,2);
функция ql_skip_product_on_sale_from_discount($return_val,$pid) { 
$sale_price = get_post_meta($pid,'_sale_price',true); 
если( !пусто($sale_price)) {
вернуть истину; // исключаем этот продукт, если верно
}
вернуть $return_val;
} 

исключить продукт woocommerce из купонов - исключенный продукт по продажам

Кроме того, вы можете использовать следующий код, чтобы исключить из купонов определенные товары, которые уже поступили в продажу. Просто замените идентификатор продукта своим идентификатором.

 add_filter('xa_pbu_skip_product','ql_skip_product_from_discount',1,2);
функция ql_skip_product_from_discount($return_val,$pid) {
$pid_to_skip = массив (ИДЕНТИФИКАТОР ПРОДУКТА); // Идентификаторы продуктов для исключения
если( in_array($pid,$pid_to_skip)) {
вернуть истину; // исключаем этот продукт, если верно
}
вернуть $return_val;
}

Если вы хотите добавить несколько продуктов, просто добавьте столько, сколько хотите, и разделите их запятой. Вы можете найти больше информации об этом здесь.

Добавление опции для программного исключения продукта WooCommerce из купонов

Если вы думаете, что это то, что вы можете делать часто, повторение описанного выше процесса каждый раз может оказаться не самым удобным. В этом случае есть более эффективный вариант. Вы можете добавить пользовательскую функцию, которая добавляет флажок в бэкэнд и позволяет отключать купоны индивидуально для каждого продукта.

Вы можете просто добавить этот фрагмент ко всем своим товарам, а затем решить, какие продукты WooCommerce вы хотите исключить из купонов и когда. Это интересный вариант, потому что он позволяет вам сделать этот параметр динамическим, установив или сняв этот флажок, вместо того, чтобы добавлять и удалять скрипт из файла functions.php .

Для этого на панели администратора выберите « Внешний вид» > «Редактор тем» и откройте файл functions.php на боковой панели « Файлы тем».

исключить продукты woocommerce из купонов - функции редактора темы

Теперь вставьте этот код в редактор:

 // Создаем настраиваемое поле на вкладке общих настроек продукта
add_action('woocommerce_product_options_general_product_data', 'ql_add_custom_field_general_product_fields');
функция ql_add_custom_field_general_product_fields(){
глобальный $пост;

echo '<div class="product_custom_field">';

// Пользовательское поле флажка продукта
woocommerce_wp_checkbox(массив(
'id' => '_disabled_for_coupons',
'label' => __('Отключено для купонов', 'woocommerce'),
'description' => __('Отключить этот товар от купонных скидок', 'woocommerce'),
'desc_tip' => 'истина',
));

эхо '</div>';;
}

// Сохраняем настраиваемое поле и обновляем все исключенные идентификаторы товаров в настройках WP
add_action('woocommerce_process_product_meta', 'ql_save_custom_field_general_product_fields', 10, 1);
функция ql_save_custom_field_general_product_fields($post_id){

$current_disabled = isset($_POST['_disabled_for_coupons'] )? 'да нет';

$disabled_products = get_option('_products_disabled_for_coupons');
если(пусто($disabled_products)) {
если($current_disabled == 'да')
$disabled_products = массив ($post_id);
} еще {
если ($current_disabled == 'да') {
$disabled_products[] = $post_id;
$disabled_products = array_unique($disabled_products);
} еще {
если (($key = array_search($post_id, $disabled_products)) !== false)
сбросить($disabled_products[$key]);
}
}

update_post_meta($post_id, '_disabled_for_coupons', $current_disabled);
update_option('_products_disabled_for_coupons', $disabled_products);
}

// Делаем купоны недействительными на уровне продукта
add_filter('woocommerce_coupon_is_valid_for_product', 'set_coupon_validity_for_excluded_products', 12, 4);
функция set_coupon_validity_for_excluded_products($valid,$product,$coupon,$values){
if(! count(get_option('_products_disabled_for_coupons')) > 0) return $valid;

$disabled_products = get_option('_products_disabled_for_coupons');
если(in_array($product->get_id(), $disabled_products))
$ действительный = ложь;

вернуть $ действительный;
}

// Устанавливаем сумму скидки на товар равной нулю
add_filter('woocommerce_coupon_get_discount_amount', 'zero_discount_for_excluded_products', 12, 5 );
функция zero_discount_for_excluded_products($discount, $discounting_amount, $cart_item, $single, $coupon){
if( ! count(get_option( '_products_disabled_for_coupons' )) > 0 ) return $discount;

$disabled_products = get_option('_products_disabled_for_coupons');
если(in_array($cart_item['product_id'], $disabled_products))
$скидка = 0;

возврат $скидки;
} 

исключить продукт woocommerce из купонов - стек исключенных продуктов

После этого обновите файл. Теперь давайте посмотрим, как использовать этот настраиваемый флажок, который вы только что добавили.

Использование функции и опции «Отключить купоны»

Перейдите в раздел « Товары » и откройте любой продукт, который вы хотите исключить из купонов. На вкладке «Общие» данных о продукте вы должны увидеть новую опцию « Отключено для купонов».

Включение этой опции исключит этот продукт WooCommerce из купонов на скидку. Если вы затем снимите этот флажок, скидки будут применяться к этому товару снова. Не забудьте сохранить изменения и проверить внешний интерфейс, чтобы убедиться, что все работает должным образом.

Вывод

В целом, исключение определенных товаров из скидок — это хорошая альтернатива максимизации дохода, даже если вы предлагаете специальные предложения. Вы можете захотеть применить скидки к определенным продуктам, но не к другим, либо потому, что ваша маржа уже довольно тонкая, либо, например, к ним уже применена скидка.

В этом руководстве мы рассмотрели разные способы пропустить и исключить продукт WooCommerce из купонов:

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

Если у вас есть какие-либо вопросы относительно любого из этих шагов, сообщите нам об этом в разделе комментариев ниже, и мы сделаем все возможное, чтобы помочь вам.

Наконец, если вы ищете дополнительные способы настройки скидок и лучшие способы их использования, мы рекомендуем вам ознакомиться со следующими руководствами:

  • Как автоматически применять купоны WooCommerce
  • Как создать и настроить купоны WooCommerce
  • Создание и применение купонов WooCommerce: полное руководство