Những đoạn mã hữu ích dành cho woocommerce

Đánh giá bài viết

Khi nói đến việc thiết kế website bán hàng thì không thể không nhắc đến một plugin hỗ trợ rất tốt đó chính là “woocommerce“. Là một plugin nhiều tính năng và dễ dàng dàng sử dụng, tùy chỉnh…Tuy nhiên vẫn còn một số vấn đề mà bạn vẫn còn chưa ưng ý về nó thì dưới đây web Bách Thắng chia sẻ cho các bạn những đoạn mã hữu ích dành cho woocommerce mà bạn nên dùng.

Những đoạn mã hữu ích dành cho woocommerce

Những đoạn mã hữu ích dành cho woocommerce

Những đoạn mã hữu ích dành cho woocommerce

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

Loại bỏ field “địa chỉ” trong trang 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;
}

Thiết lập cho hiển thị số lượng sản phẩm trên một trang

Nếu 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 );

>>>Xem thêm: thiết kế website giá rẻ tại Hà Nội uy tín chất lượng

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

Nếu 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
    }
}

Loại 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.

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 dưới đây sẽ giúp các sản phẩm mà khách hàng chèn vào giỏ hàng sẽ tự động chuyển sang trang thanh toán. Hãy chèn đoạn code này vào file functions.php để sử dụng nó.

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ế “hết hàng ” thành “đã bán

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 hết hàng bằng đã bán. Vẫn là chèn vào file functions.php nhé.

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.

>>>Xem thêm: những đoạn mã .htaccess cần thiết cho website wordpress

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');
}

Thay giá bằng liên hệ.

Là một loại hình sản phẩm không để giá và bạn muốn thay vị trí giá bằng chữ liên hệ. Kể cả khi bạn không điền giá hay để giá bằng 0 đồng thì nó sẽ tự động chuyển thành chữ “liên hệ“. Đoạn code dưới đây sẽ giúp bạn điều đó, hãy chèn nó vào file functions.php

function my_wc_custom_get_price_html( $price, $product ) {
if ( $product->get_price() == 0 ) {
if ( $product->is_on_sale() && $product->get_regular_price() ) {
$regular_price = wc_get_price_to_display( $product, array( ‘qty’ => 1, ‘price’ => $product->get_regular_price() ) );

$price = wc_format_price_range( $regular_price, __( ‘Giá: Liên Hệ’, ‘woocommerce’ ) );
} else {
$price = ‘<span class=”amount”>’ . __( ‘<span style=”color: #000;”>Giá:</span> Liên Hệ’, ‘woocommerce’ ) . ‘</span>’;
}
}return $price;
}add_filter( ‘woocommerce_get_price_html’, ‘my_wc_custom_get_price_html’, 10, 2

Trên đây là Những đoạn mã hữu ích dành cho woocommerce mà mình sưu tầm được để chia sẻ đến các bạn. Hy vọng những đoạn mã này cần thiết với bạn và nó sẽ được sử dụng thường xuyên trong quá trình bạn làm website bán hàng. Chúc các bạn thành công.