Thêm thuộc tính sản phẩm woocommerce

      96

WooCommerce là nền tảng bán sản phẩm bằng WordPress phổ biến nhất hiện nay, cùng với sự cung cấp của WooCommerce API bạn cũng có thể thay đổi thiết đặt WooCommerce mặc định chẳng hạn họ muốn tùy trở thành giá của thành phầm trước khi hiển thị thông tin chi tiết về sản phẩm cho quý khách hàng trên website.

Bạn đang xem: Thêm thuộc tính sản phẩm woocommerce

Hôm nay, mình đã hướng dẫn các bạn thêm ở trong tính cho thành phầm và hiển thị nó bên dưới mỗi thành phầm trong list hiển trên shop WooCommerce.

Hiển thị ở trong tính sản phẩm

Bạn rất có thể dễ dàng thêm thuộc tính cho sản phẩm trong WooCommerce bằng phương pháp truy cập /wp-admin/edit.php?post_type=product&page=product_attributes, sử dụng cùng một nguyên lý, WordPress cho phép bạn tạo mọi kiểu dữ liệu dựa trên Custom Post Type. WordPress taxonomies được sử dụng vào việc nhóm Posts với Post tùy chỉnh, nó giúp bạn bổ xung những thành phần cho đối tượng như một phương tiện để phân loại.

Ở đây, những taxonomy trong WooCommerce gồm thuộc tính sản phẩm (product_attributes), hạng mục (product_cat), từ bỏ khóa (product_tag). Cơ mà trong phạm vi bài xích này tôi chỉ nói về kiểu cách sử dụng trực thuộc tính sản phẩm, tất nhiên chúng ta cũng có thể thêm trường tùy trở thành cho thuộc tính sản phẩm nếu muốn.

WooCommerce không có tùy chọn cho chính mình bật hiển thị nằm trong tính cho từng sản phẩm trong quản lí trị WordPress, họ sẽ thực hiện hook woocommerce_after_shop_loop_item_titles với thêm hàm sử lý cho sản phẩm lặp hiện nay tại. Chèn đoạn code sau vào file functions.php của giao diện WordPress hiện tại.

Xem thêm: Cách Cài Máy In Qua Mạng Wifi, 2 Bước Để Kết Nối Máy In Qua Mạng Wifi

add_action("woocommerce_after_shop_loop_item_title", "woo_after_shop_loop_item_title",6);function woo_after_shop_loop_item_title() global $product, $post;$attribute_taxonomies = wc_get_attribute_taxonomies();$html="";if ( $attribute_taxonomies ) :foreach ($attribute_taxonomies as $tax) :if (taxonomy_exists(wc_attribute_taxonomy_name($tax->attribute_name))) :$tt = wp_get_post_terms($post->ID, wc_attribute_taxonomy_name($tax->attribute_name), "orderby=name&hide_empty=0" );if(count($tt)):$html.= ("". $tax->attribute_label. ": ");foreach($tt as $t) if($t->name ) $html.= $t->name.", ";eak;$html = trim($html, ", ")."";endif;endif;endforeach;endif;$html.="";echo $html;Lưu ý lắp thêm tự hàm gán vào hook woocommerce_after_shop_loop_item_title vẫn quyết định vị trí hiển thị của chuỗi tạo vì chưng mỗi hàm. WooCommerce sử dung 2 hàm để hiển thị giá thành phầm và bẩu chọn rating vào template content-product.php tại vị trí 5-10

Như rất có thể thấy, mình sản xuất vị trí 6, với thuộc tính sản phẩm sẽ hiển thị trên website thân 2 nội dung: giá sản phẩm và sao bình chọn. Bạn cũng có thể thay đổi quý giá này tùy ý nơi bạn sẽ muốn hiển thị.


Tuy nhiên đoạn code bên trên hiển thị toàn bộ các ở trong tính có thực hiện cho thành phầm nhưng không tuân theo thứ tự xắp xếp cùng với mỗi thành phầm bạn nuốm đổi. Để thay đổi thứ từ ưu tiên bạn thiết lập cấu hình trong trang sửa sản phẩm, chúng ta sửa lại đoạn code trên thành như sau:

function sksort(&$array, $subkey="id", $sort_ascending=false, $parseVal=null) if(!$parseVal) $parseVal = function($val)return $val;; if (count($array)) $temp_array = array_shift($array); else $temp_array=<>; foreach($array as $key => $val) $offset = 0; $found = false; foreach($temp_array as $tmp_key => $tmp_val) if(!$found & isset($val<$subkey>) && isset($tmp_val<$subkey>) && strtolower(call_user_func($parseVal,$val<$subkey>)) > strtolower(call_user_func($parseVal,$tmp_val<$subkey>))) $temp_array = array_merge( (array)array_slice($temp_array,0,$offset), array($key => $val), array_slice($temp_array,$offset) ); $found = true; $offset++; if(!$found) $temp_array = array_merge($temp_array, array($key => $val)); if ($sort_ascending && isset($temp_array)) $array = array_reverse($temp_array); else $array = $temp_array;add_action("woocommerce_after_shop_loop_item_title", "woo_after_shop_loop_item_title",6);function woo_after_shop_loop_item_title() global $product, $post;$attribute_taxonomies = wc_get_attribute_taxonomies();$atts = get_post_meta( $product->id , "_product_attributes" );$atts=$atts<0>;$html="";sksort($atts, "position", true);if ( $attribute_taxonomies ) :foreach ($attribute_taxonomies as $tax) :if (taxonomy_exists(wc_attribute_taxonomy_name($tax->attribute_name))) :$attributes<"pa_".$tax->attribute_name> = $tax->attribute_label;endif;endforeach;endif;foreach($atts as $i=>$item) $tt = wp_get_post_terms($post->ID, ($item<"name">), "orderby=name&hide_empty=0" );if(count($tt) && isset($attributes<$item<"name">>)):$html.= "". $attributes<$item<"name">>. ": ";foreach($tt as $t) if($t->name ) $html.= $t->name.", ";$html = trim($html, ", ")."";endif;$html.="";echo $html;Một lý giải một chút, hàm sksort giúp đỡ bạn xắp xếp mảng ở trong tính vày key ‘position’ theo trang bị tự từ bé dại đến mập sẽ tương ứng với vị trí bạn tùy chỉnh của các thuộc tính thành phầm trong quản ngại trị.

Kết quả:

*

Chúc chúng ta thành công.

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở dưới và chớ quên share kiến thức này với đồng đội của bạn nhé. Bạn cũng có thể theo dõi blog này trên Twitter với Facebook