Как добавить пользовательскую кнопку уменьшения AJAX в цикле продуктов Woocommerce? - PullRequest
0 голосов
/ 01 ноября 2019

Я добавил кнопку «плюс» и «минус» в свой цикл продуктов Woocommerce, и кнопка «плюс» работает нормально. Теперь я хочу удалить товар, когда пользователь нажимает кнопку «минус».

Вот пользовательская кнопка для добавления товара и увеличения количества товара -

function wc_shop_demo_button() {
    global $product;
    echo '<div class="button product_type_simple add_to_cart_button ajax_add_to_cart"  data-product_id=' . $product->get_id() . ' rel="nofollow" >Plus</div>';
    echo '<div class="minus button"  data-product_id=' . $product->get_id() . ' rel="nofollow" >Minus</div>';
}
add_action( 'woocommerce_after_shop_loop_item', 'wc_shop_demo_button', 20 );
add_action( 'woocommerce_after_add_to_cart_button', 'wc_shop_demo_button', 20 );

Мой вопрос: возможно ли это? уменьшить количество товара в корзине с помощью кнопки AJAX? Если так, то как?

1 Ответ

0 голосов
/ 01 ноября 2019

Отображение кнопок плюс и минус количество на странице магазина WooCommerce: поместите этот код в файл functions.php вашей активной темы (и удалите код).

 /**
 * Add quantity field on the shop page.
 */
function custom_shop_page_add_quantity_field() {
  /** @var WC_Product $product */
  $product = wc_get_product( get_the_ID() );
  if ( ! $product->is_sold_individually() && 'variable' != $product->get_type() && $product->is_purchasable() ) {
     woocommerce_quantity_input( array( 'min_value' => 1, 'max_value' => $product->backorders_allowed() ? '' : $product->get_stock_quantity() ) );
  }
}
add_action( 'woocommerce_after_shop_loop_item', 'custom_shop_page_add_quantity_field', 12 );
/**
 * Add required JavaScript.
 */
function custom_shop_page_quantity_add_to_cart_handler() {
  wc_enqueue_js( '
     $(".woocommerce .products").on("click", ".quantity input", function() {
        return false;
     });
     $(".woocommerce .products").on("change input", ".quantity .qty", function() {
        var add_to_cart_button = $(this).parents( ".product" ).find(".add_to_cart_button");
        // For AJAX add-to-cart actions
        add_to_cart_button.data("quantity", $(this).val());
        // For non-AJAX add-to-cart actions
        add_to_cart_button.attr("href", "?add-to-cart=" + add_to_cart_button.attr("data-product_id") + "&quantity=" + $(this).val());
     });
     // Trigger on Enter press
     $(".woocommerce .products").on("keypress", ".quantity .qty", function(e) {
        if ((e.which||e.keyCode) === 13) {
           $( this ).parents(".product").find(".add_to_cart_button").trigger("click");
        }
     });
  ' );
}
add_action( 'init', 'custom_shop_page_quantity_add_to_cart_handler' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...