Tổng hợp đoạn code hay cho Woocommerce

Bài viết này vừa được chỉnh sửa lúc: 09/03/2021
Rate this post

Bài viết này là mình tổng hợp các đoạn mã về Woocommerce, trong các phiên bản WC cập nhật nó sẽ có những thay đổi ảnh hưởng đến đoạn mã code, mọi người để lại lỗi hoặc lời nhắn IZ4WEB sẽ hỗ trợ fix trong các bài viết mình cập nhật.

WC nó đã cung cấp cho chúng ta khá là đầy đủ để xây dựng một website thương mại điện tử, WC  cung cấp “HOOK“, “FILTER” để cho các nhà phát triển thay đổi, can thiệp chỉnh sửa một số tinh năng theo mục yêu cầu bạn chỉ cần copy và paste vào function.php của theme là chức năng được thay đổi… nào cùng bắt đầu!

Cùng chủ đề:

Tổng hợp đoạn code hay cho Woocommerce

1. Thêm ký hiệu tiền tệ theo ý mình

add_filter( 'woocommerce_currencies', 'add_my_currency' );
 
function add_my_currency( $currencies ) {
     $currencies['VNĐ'] = __( 'Vietnam Dong', 'woocommerce' );
     return $currencies;
}
 
add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2);
 
function add_my_currency_symbol( $currency_symbol, $currency ) {
     switch( $currency ) {
          case 'VNĐ': $currency_symbol = '$'; break;
     }
     return $currency_symbol;
}

2. Thay chữ “Add to Cart” hoặc “Thêm vào giỏ”

/**
 * Change the add to cart text on single product pages
 */
function woo_custom_cart_button_text() {
        return __('My Button Text', 'woocommerce');
}
add_filter('single_add_to_cart_text', 'woo_custom_cart_button_text');
 
/**
 * Change the add to cart text on product archives
 */
function woo_archive_custom_cart_button_text() {
        return __( 'My Button Text', 'woocommerce' );
}
add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );

3. Tự thêm sản phẩm vào giỏ mỗi khi khách truy cập vào

/*
 * Add item to cart on visit
 */
function add_product_to_cart() {
        if ( ! is_admin() ) {
                global $woocommerce;
                $product_id = YOUR_PRODUCT_ID;
                $found = false;
                //check if product already in cart
                if ( sizeof( $woocommerce->cart->get_cart() ) > 0 ) {
                        foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
                                $_product = $values['data'];
                                if ( $_product->id == $product_id )
                                        $found = true;
                        }
                        // if product not found, add it
                        if ( ! $found )
                                $woocommerce->cart->add_to_cart( $product_id );
                } else {
                        // if no products in cart, add it
                        $woocommerce->cart->add_to_cart( $product_id );
                }
        }
}
add_action( 'init', 'add_product_to_cart' );

4. Xóa chữ “Product” trên thanh điều hướng

/*
 * Hide "Products" in WooCommerce breadcrumb
 */
function woo_custom_filter_breadcrumbs_trail ( $trail ) {
  foreach ( $trail as $k => $v ) {
    if ( strtolower( strip_tags( $v ) ) == 'products' ) {
      unset( $trail[$k] );
      break;
    }
  }
 
  return $trail;
}
 
add_filter( 'woo_breadcrumbs_trail', 'woo_custom_filter_breadcrumbs_trail', 10 );

5. Gửi email sau khi thanh toán bằng coupon

/**
 * WooCommerce Extra Feature
 * --------------------------
 *
 * Send an email each time an order with coupon(s) is completed
 * The email contains coupon(s) used during checkout process
 *
 */
function woo_email_order_coupons( $order_id ) {
        $order = new WC_Order( $order_id );
 
        if( $order->get_used_coupons() ) {
 
          $to = 'youremail@yourcompany.com';
                $subject = 'New Order Completed';
                $headers = 'From: My Name ' . "\r\n";
 
                $message = 'A new order has been completed.\n';
                $message .= 'Order ID: '.$order_id.'\n';
                $message .= 'Coupons used:\n';
 
                foreach( $order->get_used_coupons() as $coupon) {
                        $message .= $coupon.'\n';
                }
                @wp_mail( $to, $subject, $message, $headers );
        }
}
add_action( 'woocommerce_thankyou', 'woo_email_order_coupons' );

6. Thay đổi số lượng sản phẩm liên quan

/**
 * WooCommerce Extra Feature
 * --------------------------
 *
 * Change number of related products on product page
 * Set your own value for 'posts_per_page'
 *
 */
function woo_related_products_limit() {
  global $product;
 
        $args = array(
                'post_type'                     => 'product',
                'no_found_rows'                 => 1,
                'posts_per_page'                => 6,
                'ignore_sticky_posts'   => 1,
                'orderby'               => $orderby,
                'post__in'              => $related,
                'post__not_in'          => array($product->id)
        );
        return $args;
}
add_filter( 'woocommerce_related_products_args', 'woo_related_products_limit' );

7. Không cho hiển thị sản phẩm trong Category nào đó ở trang Shop

Thay chữ shoes thành slug của category sản phẩm mà bạn cần loại bỏ, có thể thêm nhiều bằng cách điền như array( 'shoes', 'computer' ).

/**
 * Remove products from shop page by category
 *
 */
function woo_custom_pre_get_posts_query( $q ) {
 
        if ( ! $q->is_main_query() ) return;
        if ( ! $q->is_post_type_archive() ) return;
 
        if ( ! is_admin() && is_shop() ) {
 
                $q->set( 'tax_query', array(array(
                        'taxonomy' => 'product_cat',
                        'field' => 'slug',
                        'terms' => array( 'shoes' ), // Don't display products in the shoes category on the shop page
                        'operator' => 'NOT IN'
                )));
 
        }
 
        remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
 
}
add_action( 'pre_get_posts', 'woo_custom_pre_get_posts_query' );

8. Tắt các tab như Review, Description trong sản phẩm

/**
 * Remove product tabs
 *
 */
function woo_remove_product_tab($tabs) {
 
    unset( $tabs['description'] );                      // Remove the description tab
    unset( $tabs['reviews'] );                                  // Remove the reviews tab
    unset( $tabs['additional_information'] );   // Remove the additional information tab
 
        return $tabs;
 
}
add_filter( 'woocommerce_product_tabs', 'woo_remove_product_tab', 98);

9. Thay chữ “Free” thành một chữ bất kỳ

/**
 * WooCommerce Extra Feature
 * --------------------------
 *
 * Replace "Free!" by a custom string
 *
 */
function woo_my_custom_free_message() {
        return "Liên hệ để lấy giá";
}
 
add_filter('woocommerce_free_price_html', 'woo_my_custom_free_message');

10. Ẩn các phương thức vận chuyển khác khi phương thức miễn phí kích hoạt

// Hide ALL shipping options when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'hide_all_shipping_when_free_is_available' , 10, 1 );
 
/**
* Hide ALL Shipping option when free shipping is available
*
* @param array $available_methods
*/
function hide_all_shipping_when_free_is_available( $available_methods ) {
 
        if( isset( $available_methods['free_shipping'] ) ) :
 
                // Get Free Shipping array into a new array
                $freeshipping = array();
                $freeshipping = $available_methods['free_shipping'];
 
                // Empty the $available_methods array
                unset( $available_methods );
 
                // Add Free Shipping back into $avaialble_methods
                $available_methods = array();
                $available_methods[] = $freeshipping;
 
        endif;
 
        return $available_methods;
}

11. Sửa thông báo sau khi thêm vào giỏ

/**
 * Custom Add To Cart Messages
 * Add this to your theme functions.php file
 **/
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
        global $woocommerce;
 
        // Output success messages
        if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
 
                $return_to      = get_permalink(woocommerce_get_page_id('shop'));
 
                $message        = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Continue Shopping &rarr;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );
 
        else :
 
                $message        = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('View Cart &rarr;', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );
 
        endif;
 
                return $message;
}

12. Tự thêm tỉnh/thành (States)

/**
 * Code goes in functions.php or a custom plugin. Replace XX with the country code your changing.
 */
add_filter( 'woocommerce_states', 'custom_woocommerce_states' );
 
function custom_woocommerce_states( $states ) {
 
  $states['XX'] = array(
    'XX1' => 'State 1',
    'XX2' => 'State 2'
  );
 
  return $states;
}

13. Thay số lượng ảnh thumbnail trong sản phẩm

add_filter ( 'woocommerce_product_thumbnails_columns', 'xx_thumb_cols' );
 function xx_thumb_cols() {
     return 4; // .last class applied to every 4th thumbnail
 }

14. Hiển thị ảnh đại diện cho category sản phẩm ở trang category

add_action( 'woocommerce_archive_description', 'woocommerce_category_image', 2 );
function woocommerce_category_image() {
    if ( is_product_category() ){
            global $wp_query;
            $cat = $wp_query->get_queried_object();
            $thumbnail_id = get_woocommerce_term_meta( $cat->term_id, 'thumbnail_id', true );
            $image = wp_get_attachment_url( $thumbnail_id );
            if ( $image ) {
                    echo '<img src="' . $image . '" alt="" />';
                }
        }
}

15. Sửa đường link nút “Add to Cart”

add_filter('add_to_cart_redirect', 'custom_add_to_cart_redirect');
 
function custom_add_to_cart_redirect() {
     /**
      * Replace with the url of your choosing
      * e.g. return 'http://www.yourshop.com/'
      */
     return get_permalink( get_option('woocommerce_checkout_page_id') );
}

16. Kéo dài field nhập địa chỉ

add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');
 
function custom_woocommerce_billing_fields( $fields ) {
 
     $fields['billing_address_1']['class'] = array( 'form-row-wide' );
 
     $fields['billing_address_2']['class'] = array( 'form-row-wide' );
 
     return $fields;
}

17. Sửa số lượng sản phẩm hiển thị ở mỗi trang

// Display 24 products per page. Goes in functions.php
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 24;' ), 20 );

18. Ẩn sản phẩm liên quan

/*
 * wc_remove_related_products
 *
 * Clear the query arguments for related products so none show.
 * Add this code to your theme functions.php file.
 */
function wc_remove_related_products( $args ) {
        return array();
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10);

19. Đưa mô tả sản phẩm vào bên dưới ảnh sản phẩm

add_action('woocommerce_after_shop_loop_item_title','woocommerce_template_single_excerpt', 5);

20. Tắt chức năng mã SKU

add_filter( 'wc_product_sku_enabled', '__return_false' );

…………………………………………..Còn nữa mình cập nhật thêm trong bài viết sau

 

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

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

IZ4WEB.COM - Trang chia sẻ theme / Plugin WordPress từ themeforest chia sẻ hoàn toàn miễn phí link download được gắn đến Google Drive, nếu ko tìm thấy Plugin – Theme mong muốn vui lòng liên hệ qua Form hỗ trợ hoặc qua mail iz4webteams@gmail.com or 0964.555.805 để chúng tôi sẽ gửi cho bạn ngay phiên bản mới nhất qua thông tin nhận được.

Team có vài lưu ý:

  • Vì chia sẻ miễn phí các bạn đừng hỏi license, team vẫn hỗ trợ update
  • Cơ bản các theme đều import được demo, đọc kĩ tài liệu hướng dẫn của Theme
  • Team sẽ không cam kết chất lượng code Theme vì mình không phải người làm ra theme đấy
  • Nếu các bạn thấy theme có vấn đề vui lòng phản hồi lại Admin để update

Để anh/em có động lực làm việc mọi người có thể donate 1 phần nhỏ tiền trà thuốc để có động lực chiến đấu... Thay mặt Team chân thành cảm ơn!

Chủ TK: Lý Mạnh Hưng



Ngoài ra chúng tôi còn cung cấp các dịch vụ Thiết Kế Website, Cài đặt cấu hình website theo yêu cầu, Dịch vụ SEO, Design & Media, Dịch vụ quảng cáo...

0
Would love your thoughts, please comment.x
()
x