Trở về

10 đoạn code hữu ích dùng cho WooCommerce

bởi Vi Nè

Trong những năm trở lại đây, WooCommerce được ghi nhận là một trong những plugin tạo shop bán hàng tốt nhất hiện nay với nhiều tính năng và dễ dàng sử dụng cũng như tùy chỉnh.

Nếu các bạn biết viết code thì đơn giản hơn rất nhiều cho việc quản lý shop online, còn nếu không thì mình xin mạn phép chia sẻ cho các bạn 10 đoạn code mà có thể các bạn sẽ dùng đến nó.

Tạo link trực tiếp “Add to cart”

Thỉnh thoảng các bạn cần cho phép khách hàng chèn sản phẩm vào giỏ hàng chỉ với một cú click chuột trên link. Các bạn chỉ việc chèn ?add-to-cart=974 vào cuối bất kì link nào là được. Trong đó 974 là mã số sán phẩm (product ID)

http://yoursite.com/checkout/?add-to-cart=974

Gõ bỏ field “địa chỉ” trong phần thanh toán (checkout)

Nếu mặt hàng mà các bạn bán là các sản phẩm kỹ thuật số (như mã code kích hoạt) thì việc hiển thị những phần địa chỉ thanh toán là hết sức dư thừa. Để loại trừ những field này, các bạn chỉ việc chèn đoạn code bên dưới vào bên trong file functions.php.

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
  
function custom_override_checkout_fields( $fields ) {
    unset($fields['billing']['billing_first_name']);
    unset($fields['billing']['billing_last_name']);
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_address_1']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_city']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_country']);
    unset($fields['billing']['billing_state']);
    unset($fields['billing']['billing_phone']);
    unset($fields['order']['order_comments']);
    unset($fields['billing']['billing_address_2']);
    unset($fields['billing']['billing_postcode']);
    unset($fields['billing']['billing_company']);
    unset($fields['billing']['billing_last_name']);
    unset($fields['billing']['billing_city']);
    return $fields;
}

Quyết định số lượng sản phẩm hiển thị trên một trang

Giả sử các bạn muốn hiển thị khoảng 25 sản phẩm trên một trang, thì chèn đoạn code này vào file functions.php

add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 25;' ), 20 );

Chèn thông điệp bên trên login / register form

Nếu các bạn muốn chèn chữ hay thông điệp nào bên trên form này, thì chèn code này vào file functions.php

add_action( 'woocommerce_before_customer_login_form', 'jk_login_message' );
function jk_login_message() {
    if ( get_option( 'woocommerce_enable_myaccount_registration' ) == 'yes' ) {
    ?>
        <div class="woocommerce-info">
            <p><?php _e( 'Returning customers login. New users register for next time so you can:' ); ?></p>
            <ul>
                <li><?php _e( 'View your order history' ); ?></li>
                <li><?php _e( 'Check on your orders' ); ?></li>
                <li><?php _e( 'Edit your addresses' ); ?></li>
                <li><?php _e( 'Change your password' ); ?></li>
            </ul>
        </div>
    <?php
    }
}

Xóa bỏ breadcrumbs

Nếu các bạn thấy chức năng này dư thừa thì có thể loại bỏ nó dễ dàng với đoạn code bên dưới vào functions.php

add_action( 'init', 'jk_remove_wc_breadcrumbs' );
 
function jk_remove_wc_breadcrumbs() {
    remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 );
}

Tự động chuyển đến trang thanh toán (checkout)

Đoạn code này sẽ giúp các bạn tự động chuyển đến trang thanh toán ngay khi người dùng thao tác chèn sản phẩm vào giỏ hàng. Như thường lệ, đoạn code này phải được chèn vào file functions.php

function add_to_cart_checkout_redirect() {
    wp_safe_redirect( get_permalink( get_option( 'woocommerce_checkout_page_id' ) ) );
    die();
}
 
add_action( 'woocommerce_add_to_cart', 'add_to_cart_checkout_redirect', 16 );

Thay thế “out of stock” bằng “sold”

Nếu mặt hàng mà các bạn bán chỉ duy nhất có 1 cái, thì tốt nhất là nên thay thế câu thông báo out of stock (hết hàng) bằng sold (đã bán).

add_filter('woocommerce_get_availability', 'availability_filter_func');
 
function availability_filter_func($availability) {
    $availability['availability'] = str_ireplace('Out of stock', 'Sold', $availability['availability']);
    return $availability;
}

Giới hạn gửi hàng đến những quốc gia tự chọn

Đoạn code bên dưới sẽ giúp các bạn chỉ hiển thị những nơi mà các bạn có thể giao sản phẩm đến cho khách hàng, điều này sẽ giúp giảm thiểu những đơn hàng không thể cung cấp.

function woo_override_checkout_fields( $fields ) { 
 
    $fields['shipping']['shipping_country'] = array(
        'type'      => 'select',
        'label'     => __('My New Country List', 'woocommerce'),
        'options'   => array('AU' => 'Australia')
    );
 
    return $fields; 
} 
add_filter( 'woocommerce_checkout_fields' , 'woo_override_checkout_fields' );

Thay thế “product already in cart” bằng “add to cart”

Việc nhắc nhở khách hàng đã từng chọn sản phẩm nào đó vào giỏ hàng sẽ giúp khách hàng giảm thiểu thời gian click vào những sản phẩm đã mua , từ đó họ sẽ có nhiều thời gian mà coi những sản phẩm khác trên shop của bạn.

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' );
function woo_custom_cart_button_text() {
    global $woocommerce;
    foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
        $_product = $values['data'];
  
        if( get_the_ID() == $_product->id ) {
            return __('Already in cart - Add Again?', 'woocommerce');
        }
    }
    return __('Add to cart', 'woocommerce');
}
  
add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
    global $woocommerce;
    foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
        $_product = $values['data'];
        if( get_the_ID() == $_product->id ) {
            return __('Already in cart', 'woocommerce');
        }
    }
    return __('Add to cart', 'woocommerce');
}

Chèn menu tự tạo vào WooCommerce

Cũng giống như WordPress, WooCommerce không sử dụng menu mặc định, các bạn có thể dễ dàng thay đổi điều này bằng việc cài đặt plugin WP PageNavi. Sau khi cài đặt plugin này, thì các bạn cần phải chèn thêm đoạn code bên dưới vào file functions.php.

remove_action('woocommerce_pagination', 'woocommerce_pagination', 10);
function woocommerce_pagination() {
        wp_pagenavi();      
    }
add_action( 'woocommerce_pagination', 'woocommerce_pagination', 10);

Chúc các bạn thành công !

Chúng tôi tạm dừng chức năng bình luận, mọi thắc mắc vui lòng gửi thông qua mục liên hệ. Xin cám ơn!