gpt4 book ai didi

php - 如何在 Woocommerce 中将属性设置为变体

转载 作者:行者123 更新时间:2023-12-02 07:30:59 25 4
gpt4 key购买 nike

我正在创建一个前端表单,允许用户从前端向我的商店发布具有预定义属性和变体的可变产品。

我发现这个非常有用的问题:here这向我展示了如何将产品类型设置为变量并在产品数据的属性部分分配我的预定义属性。

但是,当我在 Wordpress/Woocommerce 的后端编辑产品时,我点击了变体但没有设置,我查看了属性,我的“分辨率”属性是用我的 3 个项目设置的。

我如何将其设置为实际将这些属性设置为我的表单变体的位置?我需要使用 wp_insert_post 吗?在 phpmyadmin 中查看,产品变体似乎已分配给 parent_id(产品 ID),帖子类型为 product_varition 等等。

$new_post = array(
'post_title' => esc_attr(strip_tags($_POST['postTitle'])),
'post_content' => esc_attr(strip_tags($_POST['postContent'])),
'post_status' => 'publish',
'post_type' => 'product',
'tags_input' => array($tags)
);

$skuu = rand();
$post_id = wp_insert_post($new_post);
update_post_meta($post_id, '_sku', $skuu );

//my array for setting the attributes
$avail_attributes = array(
'high-resolution',
'medium-resolution',
'low-resolution'
);

//Sets the attributes up to be used as variations but doesnt actually set them up as variations
wp_set_object_terms ($post_id, 'variable', 'product_type');
wp_set_object_terms( $post_id, $avail_attributes, 'pa_resolution' );


$thedata = array(
'pa_resolution'=> array(
'name'=>'pa_resolution',
'value'=>'',
'is_visible' => '1',
'is_variation' => '1',
'is_taxonomy' => '1'
)
);
update_post_meta( $post_id,'_product_attributes',$thedata);

update_post_meta( $post_id, '_visibility', 'search' );
update_post_meta( $post_id, '_stock_status', 'instock');

所以要清楚(我往往会混淆)上面确实从前端创建了我的可变产品,当我在后端查看产品时,它是一个可变产品,它具有分辨率属性集并且具有我的 3 个术语(高分辨率、中分辨率、低分辨率)作为属性。我只需要更进一步,将它们实际设置为变体,以便人们可以下订单。

Adds attributes to product already need it to add variations as well

最佳答案

我通过使用 update_post_meta 和 wp_insert_post 使其适用于我的情况。因为我已经设置了我的属性和术语,我所需要的只是一种添加到上述代码的方法,这样当创建产品时,它不仅会将属性分配给产品,而且会将它们作为变体插入数据库中。

这是我的解决方案:

//insert variations post_type
$i=1;
while ($i<=3) {
$my_post = array(
'post_title' => 'Variation #' . $i . ' of ' . esc_attr(strip_tags($_POST['postTitle'])),
'post_name' => 'product-' . $post_id . '-variation-' . $i,
'post_status' => 'publish',
'post_parent' => $post_id,
'post_type' => 'product_variation',
'guid' => home_url() . '/?product_variation=product-' . $post_id . '-variation-' . $i
);

// Insert the post into the database
wp_insert_post( $my_post );

$variable_id = $post_id + 1;
$variable_two = $variable_id + 1;
$variable_three = $variable_two + 1;

update_post_meta( $variable_id, 'attribute_pa_resolution', 'high-resolution');
update_post_meta( $variable_id, '_price', 8.50 );
update_post_meta( $variable_id, '_regular_price', '8.50');

update_post_meta( $variable_two, 'attribute_pa_resolution', 'medium-resolution');
update_post_meta( $variable_two, '_price', 5.50 );
update_post_meta( $variable_two, '_regular_price', '5.50');

update_post_meta( $variable_three, 'attribute_pa_resolution', 'low-resolution');
update_post_meta( $variable_three, '_price', 3.50 );
update_post_meta( $variable_three, '_regular_price', '3.50');

$i++;
}

关于php - 如何在 Woocommerce 中将属性设置为变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com