Como criar códigos de cupom exclusivos no WooCommerce programaticamente

Publicados: 2020-07-06

Em nosso post anterior, discutimos como se pode aplicar o código do cupom automaticamente ao carrinho do WooCommerce. Lá usamos um código de cupom genérico que é criado no menu WooCommerce -> Cupons para todos os pedidos feitos pelos diferentes clientes.

Mas, às vezes, como proprietário de uma loja, você deseja criar um código de cupom exclusivo para cada cliente em seu site para determinadas situações. Vejamos dois exemplos em que você pode querer criar códigos de cupom exclusivos.

Exemplo 1:

Como dono de uma loja online, a pior coisa que você pode enfrentar com o ciclo de compra de um cliente é o abandono do carrinho de compras. Aproximadamente. 68 a 70% dos carrinhos em um site são abandonados pelos usuários e pode haver vários motivos para isso. Um dos motivos mais comuns seriam os preços mais altos dos produtos ou as cobranças adicionais, como as taxas de envio, que são mostradas geralmente no checkout e não antes disso.

Então aqui, para minimizar o abandono de carrinho e converter o maior número de usuários em clientes, você pode simplesmente atraí-los com alguns cupons de desconto para a compra deles. Dessa forma, você pode converter seus carrinhos abandonados em carrinhos recuperados.

Nesses casos, é melhor fornecer um código de cupom exclusivo com um único limite de uso para cada carrinho abandonado para evitar vários usos do código.

Exemplo 2:

Outro exemplo de criação de códigos de cupom exclusivos seria para os clientes que compraram uma vez em sua loja, mas para atraí-los a comprar mais, você preferirá enviar alguns cupons de desconto para a próxima compra. Então, aqui, se você criar um código de cupom genérico para todos os clientes, eles poderão repassar os cupons para outras pessoas que eles conhecem, que podem ser usados ​​por eles em suas novas compras.

Portanto, aqui um código de cupom criado para clientes recorrentes pode ser usado indevidamente. Para evitar isso, é melhor criar um código de cupom exclusivo para cada cliente com um limite de uso definido como 1.

Não é possível criar códigos de cupom exclusivos manualmente para cada cliente no menu WooCommerce -> Cupons. Portanto, a outra opção seria adicionar um snippet de código para criar vários cupons ao mesmo tempo para diferentes usuários e discutiremos como conseguir isso em nosso post.

2 maneiras de criar códigos de cupom exclusivos no WooCommerce

A primeira etapa para criar um código de cupom exclusivo seria criar uma string aleatória para cada cupom. Isso seria criado usando o código abaixo.

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

Aqui a função substr() retorna a parte da string especificada pelos parâmetros start e length e a função str_shuffle() embaralha aleatoriamente a string passada.

Depois de gerar a string exclusiva, a próxima etapa seria criar o código do cupom usando um snippet de código. Discutiremos 2 maneiras de criar códigos de cupom programaticamente no WooCommerce .

1. Usando a função wp_insert_post()

A primeira maneira de adicionar o código do cupom programaticamente é usando a função wp_insert_post() que permite adicionar ou atualizar uma postagem do WordPress. Então, no nosso caso, estamos adicionando um post com o tipo de post shop_coupon usando esta função. Para adicionar a meta para os cupons criados, a função update_post_meta() é usada. Você precisa adicionar o código abaixo ao arquivo functions.php do tema filho ou usar qualquer plugin de trechos de código.

 $coupon_code = 'UNIQUECODE'; // Código criado usando o snippet de string aleatório.
$quantia = '10'; // Quantia
$discount_type = 'porcentagem'; // Tipo: fixed_cart, percent, fixed_product, percent_product
          
$cupom = array(
    'post_title' => $coupon_code,
    'post_content' => '',
    'post_status' => 'publicar',
    'post_autor' => 1,
    'post_type' => 'shop_coupon'
);
            
$new_coupon_id = wp_insert_post( $coupon);
            
// Adiciona meta
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, 'individual_use', 'no');
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, 'data_expiry', '');
update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes');
update_post_meta( $new_coupon_id, 'free_shipping', 'no');

2. Usando a API Rest do WooCommerce

Outra maneira de adicionar código de cupom programaticamente é usando a API WooCommerce Rest fornecida pelo próprio plug-in. O WooCommerce tem um guia completo fornecido para a API Rest, incluindo autenticação, busca de dados, cupons, pedidos, etc.

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

use Automattic\WooCommerce\Client;
use Automattic\WooCommerce\HttpClient\HttpClientException;

$woocommerce = novo cliente(
    'https://example.com',
    'Chave do consumidor',
    'consumidor secreto',
        [
            'wp_api' => verdadeiro,
      'versão' => 'wc/v3'
        ]
);

$dados = [
    'código' => '10off',
    'discount_type' => 'porcentagem',
    'quantia' => '10',
    'individual_use' => verdadeiro,
    'exclude_sale_items' => verdadeiro,
    'minimum_amount' => '100,00'
];
  
$woocommerce->post('cupons', $data);

Este é um snippet de código básico para criar um código de cupom de 10% de desconto em um pedido com um total de pedidos superior a US$ 100. O código do cupom é '10off' e pode ser usado apenas por um cliente. Estas são apenas as propriedades básicas necessárias para a criação do código de cupom, mas se você quiser adicionar algumas propriedades adicionais, aqui está a lista para isso.

id( int ) Identificador exclusivo para o objeto .

code – (string)(Obrigatório) Código do cupom.

valor – (string) O valor do desconto. Deve ser sempre numérico, mesmo se definir uma porcentagem.

date_created – (date-time) A data em que o cupom foi criado, no fuso horário do site.

date_created_gmt – (data-hora) A data em que o cupom foi criado, como GMT.

date_modified – (date-time) A data em que o cupom foi modificado pela última vez, no fuso horário do site.

date_modified_gmt – (date-time) A data em que o cupom foi modificado pela última vez, como GMT.

discount_type – (string) Determina o tipo de desconto que será aplicado. Opções: porcentagem, carrinho_fixo e produto_fixo. O padrão é fixed_cart .

descrição – (string) Descrição do cupom.

date_expires – (string) A data em que o cupom expira, no fuso horário do site.

date_expires_gmt – (string) A data em que o cupom expira, como GMT.

use_count – (int) Número de vezes que o cupom já foi usado.

individual_use – (bool) Se verdadeiro, o cupom só pode ser usado individualmente. Outros cupons aplicados serão removidos do carrinho. O padrão é falso .

product_ids – (array) Lista de IDs de produtos em que o cupom pode ser usado.

exclude_product_ids – (array) Lista de IDs de produtos em que o cupom não pode ser usado.

use_limit – (int) Quantas vezes o cupom pode ser usado no total.

use_limit_per_user – (int) Quantas vezes o cupom pode ser usado por cliente.

limit_usage_to_x_items – (int) Número máximo de itens no carrinho ao qual o cupom pode ser aplicado.

free_shipping – (bool) Se verdadeiro e se o método de frete grátis exigir um cupom, este cupom habilitará o frete grátis. O padrão é falso .

product_categories – (array) Lista de IDs de categoria aos quais o cupom se aplica.

exclude_product_categories – (array) Lista de IDs de categoria aos quais o cupom não se aplica.

exclude_sale_items – (bool) Se verdadeiro, este cupom não será aplicado a itens que tenham preços promocionais. O padrão é falso .

Minimum_amount – (string) Valor mínimo do pedido que precisa estar no carrinho antes da aplicação do cupom.

maximum_amount – (string) Valor máximo do pedido permitido ao usar o cupom.

email_restrictions – (array) Lista de endereços de e-mail que podem usar este cupom.

used_by – (array) Lista de IDs de usuários (ou endereços de e-mail de convidados) que usaram o cupom.

meta_data – (matriz) Metadados.

Conclusão

Os trechos de código mencionados acima são apenas um exemplo de como criar o código do cupom. Para usá-los em seu site, ele precisa ser anexado a quaisquer ganchos ou filtros necessários. Por exemplo, ele pode ser usado em qualquer gancho no carrinho enquanto você está rastreando o abandono do carrinho ou pode ser usado no trabalho Cron que será executado toda semana para enviar atualizações por e-mail para seus clientes.

Aproveite os códigos de cupom exclusivos e faça alguns clientes que retornam felizes para o seu site.