Liên hệ

[WP] Code thêm danh mục trong product

WooCommerce là một plugin miễn phí dành cho WordPress, giúp biến website của bạn trở thành một cửa hàng thương mại điện tử chuyên nghiệp. Với WooCommerce, bạn có thể tạo ra các danh mục sản phẩm đa dạng để hiển thị sản phẩm của bạn một cách dễ dàng và thuận tiện.

Các danh mục sản phẩm trong WooCommerce cho phép bạn sắp xếp các sản phẩm của mình theo nhóm hoặc loại. Điều này giúp người dùng dễ dàng tìm kiếm các sản phẩm mà họ quan tâm và cải thiện trải nghiệm mua sắm trên website của bạn.

Để tạo danh mục sản phẩm trong WooCommerce, bạn cần truy cập vào trang quản lý sản phẩm và chọn “Danh mục”. Tại đây, bạn có thể tạo danh mục mới, chỉnh sửa thông tin danh mục hiện có và xóa các danh mục không còn sử dụng.

Khi tạo một danh mục sản phẩm mới, bạn có thể thêm mô tả chi tiết về danh mục đó, gán ảnh đại diện và xác định các sản phẩm thuộc danh mục đó. Bạn cũng có thể sắp xếp thứ tự các danh mục sản phẩm để thuận tiện cho khách hàng khi duyệt qua trang sản phẩm.

Ngoài ra, WooCommerce cũng cung cấp cho bạn các tính năng bổ sung để tăng tính linh hoạt của danh mục sản phẩm. Bạn có thể tạo nhiều cấp độ danh mục, cho phép khách hàng lọc sản phẩm theo danh mục và tạo danh sách sản phẩm yêu thích.

Tóm lại, danh mục sản phẩm trong WooCommerce là một công cụ hữu ích giúp bạn quản lý và sắp xếp sản phẩm của mình một cách dễ dàng và hiệu quả. Với tính năng đa dạng và linh hoạt của WooCommerce, bạn có thể tùy chỉnh và điều chỉnh danh mục sản phẩm của mình để phù hợp với nhu cầu kinh doanh của mình.
Mục đích của bài này mình viết chủ yếu là dùng code để tạo ra danh mục sản phẩm, WP cũng có hỗ trợ hàm wp_insert_term() 

1. Sử dụng wp_insert_term()  

$parent_term = term_exists( 'fruits', 'product_cat' ); 
$parent_term_id = $parent_term['term_id'];

// Kiểm tra xem slug của term đã tồn tại chưa
if (term_exists( 'apple', 'product_cat')) {
    return term_exists( 'apple', 'product_cat' )['term_id'];
}
wp_insert_term(
    'Apple',   // the term 
    'product_cat', // the taxonomy
    array(
        'description' => 'A yummy apple.',
        'slug'        => 'apple',
        'parent'      => $parent_term_id,
    )
);

2. Sư dụng $wpdb

Với các custom taxonomy việc sử dụng wp_insert_term()  đôi lúc sẽ bị lỗi nên mình cũng đã thêm kèm việc sử dụng $wpdb nếu sử dụng cách trên không được

function insert_category($data) {
    global $wpdb;
    $category_name = $data['categoryName'];
    $category_slug = create_slug($category_name);
    $category_description = '';
    

    if (term_exists( $category_slug, 'product_cat')) {
        return term_exists( $category_slug, 'product_cat' )['term_id'];
    }

    // Tạo một mảng chứa dữ liệu của category mới
    $term_data = array(
        'term_id' => $data['categoryId'], // Nếu bạn muốn auto tạo term_id thì xóa bỏ dòng này
        'name' => $category_name,  // Tên của category
        'slug' => $category_slug,  // Slug của category
    );

    // Chèn dữ liệu vào bảng wp_terms và lấy ID của term mới được tạo
    $wpdb->insert(
        $wpdb->terms, 
        $term_data
    );
    $term_id = $wpdb->insert_id;
    
    // Tạo thông tin taxonomy cho term mới và lưu vào bảng wp_term_taxonomy
    $taxonomy_data = array(
        'term_id' => $term_id,
        'taxonomy' => 'product_cat',  // Taxonomy của WooCommerce cho sản phẩm
        'description' => $category_description,  // Mô tả của category
        'parent' => isset($data['parentId']) ? $data['parentId'] : 0,
        'count' => 0
    );

    $wpdb->insert(
        $wpdb->term_taxonomy, 
        $taxonomy_data
    );

    // Tạo đối tượng WP_Term từ ID của term mới
    $new_term = get_term_by('id', $term_id, 'product_cat');
    // Kiểm tra xem có lỗi xảy ra không
    if ( is_wp_error( $new_term ) ) {
        echo $new_term->get_error_message();
    } else {
        return $term_id;
    }
    
}

 

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


Disclaimer: Bài viết của chỉ nhằm mục đích cung cấp thông tin, kiến thức và bài viết này.

Follow us:
  • Facebook:
  • Website:
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Bài viết được đọc nhiều