使用 Woocommerce 方法保存产品属性不同步到前端
Saving product attributes with Woocommerce methods not syncing to front end
这不是一个重复的问题。
这里的问题是没有添加每个 say 的属性。问题是将添加的属性选项与我猜的正确术语相关联。从下面的图片中可以看出,属性选项设置正确,但它们与它们的术语无关(如图一所示[文本而不是图片三中看到的灰色背景属性选项]),即使我手动 运行 set_object_terms 每个产品和数据库中正确设置的关系。
foreach($terms as $term_id) {
$term = get_term( $term_id );
$term_name = $term->name;
$term_taxonomy = $term->taxonomy;
$term_slug = $term->slug;
if( ! has_term( $term_name, $term_taxonomy, $parent_id ) ) {
$set_terms = wp_set_object_terms($parent_id, $term_slug, $term_taxonomy, true );
}
}
在将某些属性从一个数据库传输到另一个数据库时,我遇到了一个问题,即属性传输正确但它们以文本形式保存...
我需要在 wordpress 管理 > 产品编辑中手动点击“保存属性”...
让它在系统中正确注册,如下所示。
主要问题是,虽然如第一个屏幕截图所示为文本形式,但这些属性在面向用户的商店中实际上并不可见,而且在产品变体中也不可用。
我正在使用 woocommerce 方法来更新产品。这是一个代码示例:
$attribute_object = new WC_Product_Attribute();
$attribute_object->set_name( $attribute_name );
$attribute_object->set_options( $value );
$attribute_object->set_visible(1);
$attribute_object->set_variation(1);
$attribute_object->set_position(0);
$attribute_object->set_id( 0 );
$new_product_attributes[$attribute_name] = $attribute_object;
$new_product->set_attributes($new_product_attributes);
$new_product->save();
如何让 WP 将产品与其新添加的 attributes/attribute 值同步?
对于遇到同样问题的任何人,我花了一段时间,但我终于弄明白了。在上面的示例中,wc_product_attribute 对象中缺少一个 属性:
$attribute_object->set_id($taxonomy_id);
set_options 的值也应该包含在一个数组中:
$attribute_object->set_options( [$value] );
希望这对面临同样问题的其他人有用。
这不是一个重复的问题。
这里的问题是没有添加每个 say 的属性。问题是将添加的属性选项与我猜的正确术语相关联。从下面的图片中可以看出,属性选项设置正确,但它们与它们的术语无关(如图一所示[文本而不是图片三中看到的灰色背景属性选项]),即使我手动 运行 set_object_terms 每个产品和数据库中正确设置的关系。
foreach($terms as $term_id) {
$term = get_term( $term_id );
$term_name = $term->name;
$term_taxonomy = $term->taxonomy;
$term_slug = $term->slug;
if( ! has_term( $term_name, $term_taxonomy, $parent_id ) ) {
$set_terms = wp_set_object_terms($parent_id, $term_slug, $term_taxonomy, true );
}
}
在将某些属性从一个数据库传输到另一个数据库时,我遇到了一个问题,即属性传输正确但它们以文本形式保存...
我需要在 wordpress 管理 > 产品编辑中手动点击“保存属性”...
让它在系统中正确注册,如下所示。
主要问题是,虽然如第一个屏幕截图所示为文本形式,但这些属性在面向用户的商店中实际上并不可见,而且在产品变体中也不可用。
我正在使用 woocommerce 方法来更新产品。这是一个代码示例:
$attribute_object = new WC_Product_Attribute();
$attribute_object->set_name( $attribute_name );
$attribute_object->set_options( $value );
$attribute_object->set_visible(1);
$attribute_object->set_variation(1);
$attribute_object->set_position(0);
$attribute_object->set_id( 0 );
$new_product_attributes[$attribute_name] = $attribute_object;
$new_product->set_attributes($new_product_attributes);
$new_product->save();
如何让 WP 将产品与其新添加的 attributes/attribute 值同步?
对于遇到同样问题的任何人,我花了一段时间,但我终于弄明白了。在上面的示例中,wc_product_attribute 对象中缺少一个 属性:
$attribute_object->set_id($taxonomy_id);
set_options 的值也应该包含在一个数组中:
$attribute_object->set_options( [$value] );
希望这对面临同样问题的其他人有用。