Suporte » Desenvolvendo com WordPress » Incluindo checkbox clicável na tela de checkout

  • Resolvido enzocm

    (@enzocm)


    Pessoal, uma dúvida de iniciante…

    Eu criei um campo na tela de checkout perguntando se aquele item é um presente e depois coloquei um texto pra pessoa poder escrever uma carta.

    O código é esse abaixo (no functions.php do child) e aparentemente está tudo ok, apareceu na tela de checkout

    
    add_action( 'woocommerce_after_order_notes', 'novo_campo_woocommerce' ); 
    function novo_campo_woocommerce($checkout) { 
     echo '<div id="novo_campo_woocommerce">
     <h3>' .
     '<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">' . 
     '<input 
     id="additional-field-presente" 
     class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" type="checkbox" 
     name="enviando_presente" 
     value="1"
     onclick="abrirBoxPresente()">' . 
     '<span id="woo-checkbox-presente">É um presente ?</span>' . 
     '</label>' . 
     '</h3>';
     echo '</div> <div>';
     woocommerce_form_field( 'obs_presente', array(
     'type' => 'text', 'class' => array('obs_presente form-row-wide'), 
     'label' => __('Escreva um recado'), 
     'placeholder' => __('Escreva sua mensagem especial! Essa mensagem será impressa e entregue junto com seu presente!'), ), 
     $checkout->get_value( 'obs_presente' )
     );
     echo '</div>';
    }
    

    Mas eu queria colocar um código de javascript para que esse campo da carta só aparecesse se a pessoa clicasse no checkbox.

    Algo como esse script abaixo.

     <script type="text/javascript">
     function abrirBoxPresente() {
       var checkBoxPresente = document.getElementById('novo_campo_presente_texto');
       var textPresente = document.getElementsByClassName('obs_presente');
       if(checkBoxPresente.checked == true) { 
         textPresente.style.display == "block"; 
       } else {
         textPresente.style.display == "none";
       }
     }
     </script>
    

    Mas eu tentei colocar esse script no functions.php (com o ?> antes do script e o <?php depois) e não funcionou. Tentei baixar um plugin pra colocar js (aquele insert headers and footers) e também não deu certo. O que eu preciso fazer pra funcionar o js ?

    • Este tópico foi modificado 1 ano, 6 meses atrás por enzocm.
Visualizando 1 resposta (de um total de 1)
  • Olá,

    Cria um modelo de página e joga esse código na página. Entrando no painel administrativo você cria uma página e coloca esse modelo que você criou, lá em
    “Atributos da Página -> Modelo”

    Ai você chama essa página no código do tema filho que você está criando

    <?php get_template_part( 'partials/content', 'page' ); ?>
    Fonte

    • Esta resposta foi modificada 1 ano, 6 meses atrás por Fernando Filho.
Visualizando 1 resposta (de um total de 1)
  • O tópico ‘Incluindo checkbox clicável na tela de checkout’ está fechado para novas respostas.