Как программно создавать уникальные коды купонов в WooCommerce

Опубликовано: 2020-07-06

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

Но иногда, как владелец магазина, вы хотите создать уникальный код купона для каждого покупателя на своем веб-сайте для определенных ситуаций. Давайте возьмем два примера, где вы можете создать уникальные коды купонов.

Пример 1:

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

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

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

Пример 2:

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

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

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

2 способа создания уникальных кодов купонов в WooCommerce

Первым шагом для создания уникального кода купона будет создание случайной строки для каждого купона. Это будет создано с использованием приведенного ниже кода.

 $characters = "ABCDEFGHJKMNPQRSTUVWXYZ23456789";
$char_length = "8";
$random_string = substr(str_shuffle($characters), 0, $char_length);

Здесь функция substr() возвращает часть строки, заданную параметрами start и length, а функция str_shuffle() случайным образом перемешивает переданную строку.

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

1. Использование функции wp_insert_post()

Первый способ добавить код купона программно — использовать функцию wp_insert_post(), которая позволяет добавлять или обновлять запись WordPress. Итак, в нашем случае мы добавляем запись с типом записи shop_coupon, используя эту функцию. Чтобы добавить мета для созданных купонов, используется функция update_post_meta(). Вам нужно добавить приведенный ниже код в файл functions.php дочерней темы или использовать любой плагин фрагментов кода.

 $coupon_code = 'УНИКАЛЬНЫЙ КОД'; // Код, созданный с использованием случайного фрагмента строки.
$ сумма = '10'; // Количество
$discount_type = 'процент'; // Тип: fixed_cart, процент, фиксированный_продукт, процент_продукт
          
$ купон = массив (
    'post_title' => $coupon_code,
    'post_content' => '',
    'post_status' => 'опубликовать',
    'автор_записи' => 1,
    'post_type' => 'shop_coupon'
);
            
$new_coupon_id = wp_insert_post($coupon);
            
// Добавляем мета
update_post_meta($new_coupon_id, 'discount_type', $discount_type);
update_post_meta($new_coupon_id, 'coupon_amount', $amount);
update_post_meta($new_coupon_id, 'индивидуальное_использование', 'нет');
update_post_meta($new_coupon_id, 'product_ids', '' );
update_post_meta($new_coupon_id, 'exclude_product_ids', '' );
update_post_meta($new_coupon_id, 'usage_limit', '' );
update_post_meta($new_coupon_id, 'expiry_date', '' );
update_post_meta($new_coupon_id, 'apply_before_tax', 'да');
update_post_meta($new_coupon_id, 'бесплатная_доставка', 'нет');

2. Использование WooCommerce Rest API

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

 require_once __DIR__ . '/vendor/autoload.php';

используйте Automattic\WooCommerce\Client;
используйте Automattic\WooCommerce\HttpClient\HttpClientException;

$woocommerce = новый клиент(
    'https://example.com',
    'потребитель_ключ',
    'потребитель_секрет',
        [
            'wp_api' => правда,
      'версия' => 'wc/v3'
        ]
);

$ данные = [
    'код' => '10off',
    'discount_type' => 'процент',
    'количество' => '10',
    'индивидуальное_использование' => правда,
    'exclude_sale_items' => правда,
    'минимальное_сумма' => '100,00'
];
  
$woocommerce->post('купоны', $данные);

Это базовый фрагмент кода для создания кода купона на скидку 10% на заказ, общая сумма заказа которого превышает 100 долларов США. Код купона «10off» может быть использован только одним покупателем. Это только основные свойства, необходимые для создания кода купона, но если вы хотите добавить некоторые дополнительные свойства, вот их список.

id( int ) Уникальный идентификатор объекта .

code – (string)(обязательно) код купона.

сумма – (строка) Сумма скидки. Всегда должно быть числовым, даже если задан процент.

date_created – (дата-время) Дата создания купона в часовом поясе сайта.

date_created_gmt — (дата-время) Дата создания купона по Гринвичу.

date_modified – (дата-время) Дата последнего изменения купона в часовом поясе сайта.

date_modified_gmt — (дата-время) Дата последнего изменения купона по Гринвичу.

Discount_type – (строка) Определяет тип скидки, которая будет применяться. Опции: процент, фиксированная_корзина и фиксированный_продукт. По умолчанию это fixed_cart .

description – (строка) описание купона.

date_expires – (строка) Дата истечения срока действия купона в часовом поясе сайта.

date_expires_gmt — (строка) Дата истечения срока действия купона по Гринвичу.

Usage_count – (int) Количество раз, когда купон уже был использован.

Individual_use – (bool) Если true, купон можно использовать только индивидуально. Другие примененные купоны будут удалены из корзины. Значение по умолчанию — ложь .

product_ids — (массив) Список идентификаторов товаров, на которых можно использовать купон.

exclude_product_ids — (массив) Список идентификаторов продуктов, на которых нельзя использовать купон.

Usage_limit – (int) сколько раз можно использовать купон.

Usage_limit_per_user — (целое число) Сколько раз купон может быть использован одним покупателем.

limit_usage_to_x_items — (int) Максимальное количество товаров в корзине, к которым может быть применен купон.

free_shipping — (bool) Если true и если для метода бесплатной доставки требуется купон, этот купон активирует бесплатную доставку. Значение по умолчанию — ложь .

product_categories — (массив) Список идентификаторов категорий, к которым применяется купон.

exclude_product_categories — (массив) Список идентификаторов категорий, к которым не применяется купон.

exclude_sale_items — (bool) Если true, этот купон не будет применяться к товарам, у которых есть распродажная цена. Значение по умолчанию — ложь .

Minimum_amount – (строка) Минимальная сумма заказа, которая должна быть в корзине, прежде чем купон будет применен.

max_amount – (строка) Максимально допустимая сумма заказа при использовании купона.

email_restrictions — (массив) Список адресов электронной почты, которые могут использовать этот купон.

used_by — (массив) Список идентификаторов пользователей (или гостевых адресов электронной почты), которые использовали купон.

meta_data – (массив) метаданные.

Вывод

Фрагменты кода, упомянутые выше, являются лишь примером того, как создать код купона. Чтобы использовать их на своем веб-сайте, его необходимо прикрепить к любым необходимым крючкам или фильтрам. Например, его можно использовать на любом крючке в корзине, пока вы отслеживаете отказ от корзины, или его можно использовать в задании Cron, которое будет запускаться каждую неделю для отправки обновлений по электронной почте вашим клиентам.

Воспользуйтесь уникальными кодами купонов и сделайте несколько счастливых постоянных клиентов на своем веб-сайте.