- Thêm lựa chọn tỉnh/thành phố vào form checkout của woocommerce
- Woocommerce price filter – Lọc sản phẩm theo khoảng giá
- Xóa bỏ product-category và toàn bộ slug của danh mục cha khỏi đường dẫn của Woocommerce
- Thay đổi woocommerce mini cart khi ấn vào add to cart bằng ajax
- Thêm confirm password vào trang checkout woocommerce
Bài này sẽ tổng hợp một số hook (action, filter) thông dụng trong woocommerce … sẽ rất hữu ít cho ai đang làm về website bán hàng về woocommerce 🙂
Các bạn cần cái nào thì thêm code đó vào file functions.php trong theme đang sử dụng nhé
1. Xóa bỏ woocommerce result count
Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.
Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting
- iNet
- Nước ngoài thì Vultr
Các bạn thêm code sau vào file functions.php trong theme đang sử dụng nhé
function woocommerce_result_count() { return; }
2. Xóa bỏ woocommerce default sorting
Xóa bỏ ở trang shop và trang cat
remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
Remove “default sorting” dropdown in StoreFront theme
// remove default sorting dropdown in StoreFront Theme remove_action( 'woocommerce_after_shop_loop', 'woocommerce_catalog_ordering', 10 ); remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 10 );
3. Xóa bỏ tiêu đề trang shop trong woocommerce bằng hook
function override_page_title() { return false; } add_filter('woocommerce_show_page_title', 'override_page_title');
Hoặc
add_filter( 'woocommerce_show_page_title', function(){ return false; });
4. Thay đổi số sản phẩm trên 1 hàng.
Mặc định woocommerce là 4 sản phẩm trên 1 hàng, bây giờ ta thay thành 3 sản phẩm nhé.
// Change number or products per row to 3 add_filter('loop_shop_columns', 'loop_columns'); if (!function_exists('loop_columns')) { function loop_columns() { return 3; // 3 products per row } }
5. Thay đổi số sản phẩm trên 1 page trong woocommerce.
Thay đổi thành 24 sản phẩm trên 1 page ta có code như bên dưới
// Display 24 products per page. Goes in functions.php add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 24;' ), 20 );
Nếu muốn hiển thị toàn bộ sản phẩm trên 1 pages thì ta thay 24 thành -1 là được
// Display all products per page. Goes in functions.php add_filter( 'loop_shop_per_page', create_function( '$cols', 'return -1;' ), 20 );
6. Xóa bỏ nút Add to Cart trong trang shop và category
function remove_loop_button(){ remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); } add_action('init','remove_loop_button');
7. Xóa bỏ SKU, Category, tag trong single product
remove_action('woocommerce_single_product_summary','woocommerce_template_single_meta',40);
8. Xóa bỏ tabs, upsell và related trong trang single product
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
9. Chỉnh lại số product hiển thị và số product trên 1 dòng của related products
Các bạn thêm code sau vào functions.php nhé
add_filter( 'woocommerce_output_related_products_args', 'jk_related_products_args' ); function jk_related_products_args( $args ) { $args['posts_per_page'] = 4; //Số product hiển thị $args['columns'] = 4; // Số product trên 1 dòng return $args; }
10. Xóa tiêu đề của phí ship
Thêm đoạn code sau vào functions.php của theme là được
/*Add to functions.php - Author levantoan.com*/ add_filter('woocommerce_order_shipping_to_display_shipped_via', '__return_false');
11. Bắt buộc đơn hàng đạt giá trị tối thiểu để có thể tiến hành thanh toán
Đoạn code này giúp cho các bạn đặt giá trị tối thiểu của đơn hàng (ví dụ >100k) để có thể tiến hành thanh toán. Hãy dán code này vào file functions.php của theme đang sử dụng
/* Min Amount to checkout Author levantoan.com */ add_action( 'woocommerce_checkout_process', 'devvn_wc_minimum_order_amount' ); add_action( 'woocommerce_before_cart' , 'devvn_wc_minimum_order_amount' ); function devvn_wc_minimum_order_amount() { $minimum = '100000'; $checkout_minimum_price_mess = 'Bạn cần có hóa đơn >100k để tiếp tục đặt hàng'; if ( WC()->cart->total < $minimum ) { if( is_cart() ) { wc_print_notice( sprintf( $checkout_minimum_price_mess , wc_price( $minimum ), wc_price( WC()->cart->total ) ), 'error' ); } else { wc_add_notice( sprintf( $checkout_minimum_price_mess , wc_price( $minimum ), wc_price( WC()->cart->total ) ), 'error' ); } } }
12. Chỉnh email không bắt buộc trong trang checkout
Chỉ cần copy đoạn code sau vào file functions.php của theme để không bắt buộc khách nhập email khi checkout với woocommerce
add_filter( 'woocommerce_checkout_fields' , 'devvn_custom_override_checkout_fields', 9999 ); function devvn_custom_override_checkout_fields( $fields ) { $fields['billing']['billing_email']['required'] = false; return $fields; }
13. Xác thực số điện thoại Việt Nam tại trang thanh toán
Chỉ cần copy đoạn code sau vào file functions.php của theme để xác thực số điện thoại gồm 10-11 số và bắt đầu từ số 0 khi thanh toán.
add_action('woocommerce_checkout_process', 'devvn_validate_phone_field_process' ); function devvn_validate_phone_field_process() { $billing_phone = filter_input(INPUT_POST, 'billing_phone'); if ( ! (preg_match('/^0([0-9]{9,10})+$/D', $billing_phone )) ){ wc_add_notice( "Xin nhập đúng <strong>số điện thoại</strong> của bạn" ,'error' ); } }
Cập nhật thường xuyên!
- Bình luận