Trong quá trình custom woocommerce anh chị muốn làm chức năng cập nhật minicart thì làm cách nào. Sau đây tôi xin chia sẽ cách làm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<script> jQuery(function($){ $('body').on('added_to_cart',function(){ var submit_data = { action: 'dongnam_update_cart', }; console.log(submit_data); $.ajax({ type: 'POST', url: '<?php echo admin_url('admin-ajax.php'); ?>', //url: kitimportelementor_vars.ajax_url, data: submit_data, success: function ( response ) { console.log(response); if (response.success ) { $('ul.cart_list.product_list_widget').html(response.data.cart); $('#cart .cart-popup .total-cart .total-price span.woocommerce-Price-amount.amount').html(response.data.cart_total); $('a.dropdown-toggle.cart-icon').trigger('click'); //alert("Đã thêm sản phẩm vào giỏ hàng!"); } } }); }); }); </script> |
Code dùng trong object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
add_action("wp_ajax_dongnam_update_cart", array($this,"dongnam_update_cart")); add_action("wp_ajax_nopriv_dongnam_update_cart", array($this,"dongnam_update_cart")); function dongnam_update_cart(){ $html = ''; if ( sizeof( WC()->cart->get_cart() ) > 0 ) : foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) : $_product = $cart_item['data']; // Chỉ hiển thị nếu cho phép if ( ! apply_filters('woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) || ! $_product->exists() || $cart_item['quantity'] == 0 )continue; // Lấy price $product_price = get_option( 'woocommerce_display_cart_prices_excluding_tax' ) == 'yes' || WC()->customer->is_vat_exempt() ? $_product->get_price_excluding_tax() : $_product->get_price(); $product_price = apply_filters( 'woocommerce_cart_item_price_html', wc_price( $product_price ), $cart_item, $cart_item_key ); $html .='<li class="mini_cart_item">'; $html .='<a href="'.wc_get_cart_remove_url( $cart_item_key ).'" class="remove" title="Remove this item" data-product_id="200" data-product_sku=""><i class="fa fa-trash-o"></i></a>'; $html .='<a href="" class="product-image">'.$_product->get_image().'</a>'; $html .='<a href="" class="product-name">'.$_product->get_title().'</a>'; $html .='<div class="quantity">'.$cart_item['quantity'].' × <span class="woocommerce-Price-amount amount"><bdi>'.$product_price.'</bdi></span></div></li>'; endforeach; else: $html .='<li class="mini_cart_item"></li>'; endif; $results['cart'] = $html; $results['cart_total'] = WC()->cart->get_cart_total(); wp_send_json_success($results); } |
Chỉ cần add class woocommerce vào body là được, sau đây là code:
1 2 3 4 5 6 7 |
function custom_class_home( $classes ) { if ( is_front_page() ) { $classes[] = 'woocommerce'; } return $classes; } add_filter( 'body_class', array($this,'custom_class_home') ); |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress