Trong phần 2 này, chủ yếu là một số code hay cho woocommerce.

Code đổi tên nút Add to cart

Trong bản dịch woocommerce cũng đã đổi nút Add to cart thành nút thêm vào giỏ hàng, nhưng bạn muốn nhiều hơn thế, bạn muốn đổi tên nó thành cái khác ví dụ như mua ngay. Mình chia sẻ bạn đoạn code hay cho woocommerce giúp bạn làm được việc đó.

// Đổi nút Add to cart trong trang sản phẩm
add_filter( ‘woocommerce_product_single_add_to_cart_text’, ‘woo_custom_cart_button_text’ );    // 2.1 +
function woo_custom_cart_button_text() {
        return __( ‘My Button Text’, ‘woocommerce’ );
}
// Đổi nút Add to cart trong phần danh mục sản phẩm
add_filter( ‘woocommerce_product_add_to_cart_text’, ‘woo_archive_custom_cart_button_text’ );    // 2.1 +
function woo_archive_custom_cart_button_text() {
        return __( ‘My Button Text’, ‘woocommerce’ );
}
// Đổi nút Add to cart theo từng loại sản phẩm
add_filter( ‘woocommerce_product_add_to_cart_text’ , ‘custom_woocommerce_product_add_to_cart_text’ );
/**
* custom_woocommerce_template_loop_add_to_cart
*/
function custom_woocommerce_product_add_to_cart_text() {
global $product;
$product_type = $product->product_type;
switch ( $product_type ) {
case ‘external’:
return __( ‘Buy product’, ‘woocommerce’ ); //Nút mua ngay sản phẩm
break;
case ‘grouped’:
return __( ‘View products’, ‘woocommerce’ ); //Mua 1 nhóm sản phẩm
break;
case ‘simple’:
return __( ‘Add to cart’, ‘woocommerce’ ); // Đơn lẻ 1 sản phẩm thuần
break;
case ‘variable’:
return __( ‘Select options’, ‘woocommerce’ ); // 1 sản phẩm nhưng có nhiều tùy chọn
break;
default:
return __( ‘Read more’, ‘woocommerce’ ); // Xem chi tiết sản phẩm
}
}

Những cái này tùy trường hợp mà áp dụng nhé.

Code xóa hẳn nút add to cart. 

Bạn chỉ muốn đăng sản phẩm dạng trưng bày, bạn không cần tính năng đặt hàng hay mua hàng trực tuyến. Hãy sử dụng code hay cho woocommerce sau. Nó sẽ xóa hẳn cái nút Add to cart đi.

/* Code xoa nut Add to cart */
function remove_loop_button(){
   remove_action( ‘woocommerce_after_shop_loop_item’, ‘woocommerce_template_loop_add_to_cart’, 10 );
   remove_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_add_to_cart’, 30 );
}
add_action(‘init’,‘remove_loop_button’);

Code chuyển hướng nút Add to cart đến 1 trang nào đó.

Thay vì nhấn nút Add to cart là thêm vào giỏ hàng, nhưng sản phẩm của bạn không có giá cố định, bạn muốn chuyển nút Add to cart thành nút Liên hệ đặt hàng chẳng hạn. Phải làm thế nào?

Đầu tiên là bạn đổi tên cái nút Add to cart thành chữ Liên hệ đặt hàng (đã có code bên trên).

Sau đó tạo 1 trang Liên hệ đặt hàng, chèn cái contact form (tự làm cái này nhé) vào đó.

Cuối cùng dùng code bên dưới để chuyển hướng cái nút Add to cart đến cái trang liên hệ đó

/* Code chuyen huong khi click vao nut add to cart */
function custom_add_to_cart_redirect() {
    return ‘http://www.yourdomain.com/your-page/’; //Thay link cái trang liên hệ vào đây
}
add_filter( ‘woocommerce_add_to_cart_redirect’, ‘custom_add_to_cart_redirect’ );
Hoặc bạn muốn khi nhấn nút Add to cart xong nó sẽ chuyển ngay đến trang Thanh toán chứ không phải là chuyển đến giỏ hàng. Hãy dùng code hay cho woocommerce bên dưới
/* Code chuyển hướng đến trang thanh toán ngay khi ấn Add to cart */
add_filter( ‘woocommerce_add_to_cart_redirect’, ‘wc_custom_cart_redirect’ );
function wc_custom_cart_redirect() {
  return ‘/thanh-toan/’; // thay cái link trang thanh toán vào đây
}

Biến nút Add to cart thành nút xem chi tiết sản phẩm

Cái này nó có 2 bước.

Bước 1: Xóa nút Add to cart trên trang danh mục sản phẩm

/*STEP 1 – REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */
function remove_loop_button(){
remove_action( ‘woocommerce_after_shop_loop_item’, ‘woocommerce_template_loop_add_to_cart’, 10 );
}
add_action(‘init’,‘remove_loop_button’);
Bước 2: Thêm một cái nút mới dẫn đến đường link của sản phẩm
/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */
add_action(‘woocommerce_after_shop_loop_item’,‘replace_add_to_cart’);
function replace_add_to_cart() {
   global $product;
   $link = $product->get_permalink();
   echo do_shortcode(‘<a href=”‘.$link.‘”>Xem chi tiết</a>’);
}

Vậy là xong.

Code set ảnh mặc định cho sản phẩm

Khi bạn không đăng ảnh feature image cho sản phẩm, khi sản phẩm chưa có ảnh đại diện thì nó sẽ lấy ảnh này làm ảnh đại diện mặc định (Giống như rao vặt bên chotot.com)

add_action( ‘init’, ‘custom_fix_thumbnail’ );
function custom_fix_thumbnail() {
  add_filter(‘woocommerce_placeholder_img_src’, ‘custom_woocommerce_placeholder_img_src’);
function custom_woocommerce_placeholder_img_src( $src ) {
$upload_dir = wp_upload_dir();
$uploads = untrailingslashit( $upload_dir[‘baseurl’] );
$src = $uploads . ‘/2012/07/thumb1.jpg’; // Thay link ảnh chỗ này
return $src;
}
}

Biến sản phẩm 0đ thành Liên hệ

/* 0đ thàng Liên Hệ */
add_filter( ‘woocommerce_variable_free_price_html’,  ‘hide_free_price_notice’ );
add_filter( ‘woocommerce_free_price_html’,           ‘hide_free_price_notice’ );
add_filter( ‘woocommerce_variation_free_price_html’, ‘hide_free_price_notice’ );
/**
* Hides the ‘Free!’ price notice
*/
function hide_free_price_notice( $price ) {
  return ‘Liên hệ’;
}

Code hiển thị số tiền được giảm giá.

add_filter(‘woocommerce_sale_price_html’, ‘woocommerce_custom_sales_price’, 10, 2);
function woocommerce_custom_sales_price($price, $product) {
    $percentage = round((($product > regular_price $product > sale_price) / $product > regular_price) * 100);
    return $price.sprintf(__(‘ <span class=”price_save”>Save %s</span>’, ‘woocommerce’), $percentage.
        ‘%’);
}
Ẩn các phương thức giao hàng khi sử dụng phương thức Miễn phí giao hàng
/**
* Hide shipping rates when free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
function my_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( ‘free_shipping’ === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( ‘woocommerce_package_rates’, ‘my_hide_shipping_when_free_is_available’, 100 );
Mình hy vong với những code hay cho woocommerce này sẽ giúp được ít nhiều trong việc làm web của các bạn. Cảm ơn các bạn đã ghé xem!
Please follow and like us:

Comments

comments

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Facebook