Tôi đang cố gắng rút ra một danh sách các biến thể sản phẩm từ bản cài đặt Wooc Commerce, với các thuộc tính của chúng - đại loại như thế này:
product id variationid name color size
5 1234 swimsuit blue 10
5 1235 swimsuit blue 12
5 1236 swimsuit blue 14
5 1237 swimsuit red 10
Tôi có thể lấy ID biến thể và ID sản phẩm và tên sản phẩm như thế này:
<?php
// Get the variations
$args = array( 'post_type' => 'product_variation');
$variationloop = new WP_Query( $args );
while ( $variationloop->have_posts() ) : $variationloop->the_post();
// get the parent of each variation
$parent = get_post($post->post_parent);
// is the parent product live?
if ($parent->post_status=="publish")
{
$parentid=$post->post_parent;
echo $parentid; // product
echo $id; // variation id
echo $parent->post_title; // product name
}
?>
Mặc dù vậy, điều tôi không thể hiểu được là cách Wooc Commerce liên kết một biến thể với một thuộc tính, chẳng hạn như kích thước. Nếu tôi làm điều này:
$sizes = get_the_terms($parentid ,'pa_size');
foreach ( $sizes as $size ) {
echo $size->name;
}
sau đó tôi có thể nhận được tất cả các kích thước mà sản phẩm có thể có sẵn, nhưng tôi không thể tìm cách lấy lại kích thước chỉ liên quan đến biến thể 1234.
GM thân mến, tôi rất tiếc vì đã khiến bạn đọc tất cả những điều đó: Tôi mới nhận ra rằng tôi là một người tầm cỡ thế giới và đang chạy mã của tôi trên trang web thử nghiệm của mình, nhưng nhìn vào dữ liệu trực tiếp của tôi trong cơ sở dữ liệu MySQL. Vì vậy, ID không khớp. Tôi rât tiêc. Bạn đúng 100% rằng get_post_meta là câu trả lời cho tai ương của tôi, tôi chỉ cần tìm trong cơ sở dữ liệu được đánh dấu bên phải!
—
Victoria
Victoria thân mến, bạn làm tôi cười :)
—
gmazzap
Tôi phải nói rằng, nó thực sự hút thái độ stackexchange rằng WooC Commerce không có chủ đề. Đó là một nền tảng, được sử dụng bởi hàng tấn người sử dụng Wordpress. Câu hỏi có liên quan.
—
Dave Hilditch
$attr = get_post_meta($id, '_product_attributes', true); echo '<pre>'; print_r($attr); echo '</pre>';
?