Một số hook thông dụng trong woocommerce nên biết

Cập nhật lần cuối 28/05/2018 by trong Woocommerce vào 15/06/2015 có 11203 Views

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

remove-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

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

remove-woocommerce_ordering

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

remove page title

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

remove add to cart

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_meta_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ố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!

4/5 - (21 votes)
Từ khóa: ,
  • Bình luận
Sản phẩm nổi bật của Toản
x