Como restringir os cupões por montante

Introdução

Está interessado em saber como restringir cupões com base num montante específico? Este tutorial irá guiá-lo através do processo de utilização de uma ação PHP para evitar que os cupões sejam processados quando o seu valor é inferior a um limite definido.

Por defeito, tem a opção de criar cupões em formato de percentagem ou de taxa fixa para qualquer montante. No entanto, e se introduzir por engano .75 em vez de 75%? Este pequeno snippet de código pode ajudá-lo a evitar esses erros nos envios de formulários, e vamos guiá-lo através do processo neste tutorial.

Para saber mais sobre a utilização de cupões, consulte este guia útil.

Criar o cupão

Para começar, vamos criar um cupão. Neste tutorial, vamos criar um cupão com uma taxa fixa de 0,75, apesar de a nossa intenção ser defini-la como 75%. Isto é apenas para fins de demonstração e para destacar como o snippet que vamos adicionar pode ajudar na validação.

Para criar um novo cupom, navegue até WPForms " Pagamentos " Cupons e clique em Adicionar novo cupom. No campo Nome, dê ao seu cupom um nome que faça sentido para fins organizacionais.

Em seguida, no campo Código, você pode inserir manualmente um código de cupom ou clicar no botão Gerar código para permitir que o WPForms crie esse código para você. No campo Montante, introduza .75 e, no menu pendente, certifique-se de que seleciona o símbolo da moeda.

Ao selecionar o símbolo de moeda, está a utilizar o desconto de taxa fixa em vez de uma percentagem.

Para este tutorial, não vamos definir uma data ou hora, por isso vamos deslocar-nos para baixo e selecionar os formulários para os quais queremos utilizar este cupão e, em seguida, clicar em Guardar cupão para guardar as alterações.

para restringir os cupões, temos de começar por criar um novo cupão

Criar o formulário

Agora que o cupão está configurado, é altura de criar o formulário. Para obter ajuda sobre como criar formulários, consulte este guia passo-a-passo.

crie o seu formulário e adicione os seus campos

Depois de adicionarmos o campo Cupão, verá que o cupão já está atribuído.

repare que quando adiciona o campo do cupão, os cupões permitidos já estão atribuídos

Adicionar o snippet

Agora é hora de adicionar o snippet. Se precisar de ajuda sobre como e onde adicionar snippets, consulte este tutorial.

/*
 * Do not allow to submit coupons lower than 1.00.
 *
 * @link https://wpforms.com/developers/how-to-restrict-coupons-by-amount/
*/
 
function wpf_discard_low_coupons( $field_id, $field_submit, $form_data ) {
 
    $coupon = wpforms_coupons()->get( 'repository' )->get_coupon_by_code( $field_submit );
 
    if ( $coupon === null ) {
        return;
    }
 
    $currency = wpforms_get_currency();
 
    if ( $coupon->get_discount_type() === 'flat' && (float) $coupon->get_discount_amount() <= 1.00 ) {
        wpforms()->get( 'process' )->errors[ $form_data[ 'id' ] ][ $field_id ] = sprintf( /* translators: %s - Currency code name. */
            esc_html__( 'Coupon amount is less that 1.00 %s. Please, use another one.', 'your-translation-domain' ),
            $currency
        );
    }
}
add_action( "wpforms_process_validate_payment-coupon", 'wpf_discard_low_coupons', 10, 3 );

E é tudo o que precisa, sempre que um visitante utilizar esse cupão não poderá submeter o formulário.

se utilizar este snippet para restringir os cupões, verá um erro no formulário quando o cupão for utilizado

Referência da ação: wpforms_process_validate_payment-coupon