Добавление кода проверки WooCommerce для Prop65 в Калифорнии - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь добавить фрагмент в мой файл functions.php, чтобы придерживаться правил Prop65 в Калифорнии.Во время оформления заказа я хочу, чтобы отображалось окно с текстовым предупреждением с флажком, предлагающим согласие пользователя.Текст и флажок должны появляться только тогда, когда пользователь помечает свой почтовый адрес как Калифорния, в противном случае его следует скрыть.Я могу получить текст для отображения, но я не уверен, как также добавить флажок в том же поле.Вот код, который я использую, поэтому текстовое поле отображается только на основании определенного условия:

Я попытался добавить отдельное действие для кнопки-флажка, и я не уверен, как это сделать, искрыть в зависимости от условия.

  // Part 1
  // Add the message notification and place it over the billing section
  // The "display:none" hides it by default

  add_action( 'woocommerce_after_checkout_billing_form', 
  'bbloomer_echo_notice_shipping' );

  function bbloomer_echo_notice_shipping() {
  echo '<div class="shipping-notice woocommerce-info" 
  style="display:none"><img src="https://emartmedia.com/images/bw6pt.png" 
  /><strong>WARNING</strong> SOME PRODUCTS SOLD ON THIS STORE WEBSITE CAN 
  CONTAIN CHEMICALS KNOWN TO THE STATE OF CALIFORNIA TO CAUSE CANCER, 
  BIRTH DEFECTS OR OTHER REPRODUCTIVE HARM. <a 
  href="https://www.p65warnings.ca.gov" target="_blank">Details</a></p> 
  </div>'; 
  }

  // Part 2
  // Show or hide message based on billing state
  // The "display:none" hides it by default

  add_action( 'woocommerce_before_checkout_form', 
 'bbloomer_show_notice_shipping' );

  function bbloomer_show_notice_shipping(){ 

?>

<script>
    jQuery(document).ready(function($){

        // Set the state code (That will display the message) 
        var stateCode = 'CA';

        $('select#billing_state').change(function(){

            selectedstate = $('select#billing_state').val();

            if( selectedstate == stateCode ){
                $('.shipping-notice').show();
            }
            else {
                $('.shipping-notice').hide();
            }
        });

    });
</script>

<?php

}

...