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.
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.
Depois de adicionarmos o campo Cupão, verá que o cupão já está atribuído.
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.
Relacionadas
Referência da ação: wpforms_process_validate_payment-coupon