WooCommerce кнопка "Добавить в корзину", чтобы сказать "Продано" - PullRequest
0 голосов
/ 08 мая 2020

Я изо всех сил пытаюсь понять, что изменилось в моем коде. Он работает для настольных компьютеров, но перестал работать для мобильных. На мобильных устройствах он не изменится с «Добавить в корзину» на «Продано». Кнопка становится красной, но продолжает говорить «Добавить в корзину».

 // For all products except variable product
   add_filter( 'woocommerce_get_availability', 'wcs_custom_get_availability', 1, 2);
     function wcs_custom_get_availability( $availability, $_product ) {

 // Change Out of Stock Text
    if ( ! $_product->is_in_stock() ) {
       $availability['availability'] = __('Sold Out', 'woocommerce');
    }
   return $availability;
 }

//THIS IS MY CURRENT SCRIPT
// For all variable products 
add_action( 'woocommerce_after_add_to_cart_button', 'after_add_to_cart_button_action_callback', 0 );
function after_add_to_cart_button_action_callback() {
   global $product;
      if( $product->is_type('variable') ) :
          $data = [];
 foreach( $product->get_visible_children() as $variation_id ){
          $variation = wc_get_product( $variation_id );
          $data[$variation_id] = $variation->is_in_stock();
      }

    $outofstock_text = __("Sold Out", "woocommerce");
    ?>
   <script type="text/javascript">
  jQuery(function($){
    var b = 'button.single_add_to_cart_button',
        t = $(b).text();

    $('form.variations_form').on('show_variation hide_variation found_variation', function(){
        $.each(<?php echo json_encode($data); ?>, function(j, r){
            var i = $('input[name="variation_id"]').val();
            if(j == i && i != 0 && !r ) {
                $(b).html('<?php echo $outofstock_text; ?>');
                return false;
            } else {
                $(b).text('Add To Cart');
             }
                 });
              });
           });
       </script>
     <?php
  endif;
 }

Я использую два экземпляра фрагмента «Добавить в корзину» для файла переменной. php. Один для настольного компьютера, другой для мобильного. Оба фрагмента идентичны, разницы нет. Я просто не знал, что и как go о настройке страницы одного продукта для фиксированной кнопки добавления в корзину в нижней части страницы на мобильном телефоне, и я хотел сделать образец смахивания.

Вот ссылка на переменную. php файл на git, чтобы увидеть, как я вызываю кнопку «Добавить в корзину». Строка 28 и строка 85

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...