我需要通过PHP代码设置产品的属性。 根据StackOverflow上的其他线程,有方法wp_set_object_terms。不幸的是,它不能正常工作,因为它应该是我的情况:WooCommerce:使用wp_set_object_terms发布设置属性
例如,有一个名为“Hersteller”,slug“hersteller”的属性。 还有一个产品ID 593,没有“hersteller”属性集。
我尝试下面的代码来填充属性:
wp_set_object_terms(593, 'Alpina', 'pa_hersteller' , false);
当我试图显示在产品页面上的属性,没有输出,所以它似乎wp_set_object_terms处理不是招没有成功。 下面的代码生成空输出:
$product->get_attribute('hersteller');
此外,属性“...创建”甚至没有在管理后台menue属性列表中列出。
要调试我也尝试下面的代码问题:
$attributes = get_post_meta(593, '_product_attributes');
print_r($attributes);
导致下面的输出:
Array ([0] => Array ([pa_marken] => Array ([name] => pa_marken [value] => [position] => 0 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1) [pa_kategorien] => Array ([name] => pa_kategorien [value] => [position] => 1 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1) [pa_referenznummer] => Array ([name] => pa_referenznummer [value] => [position] => 2 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1) [pa_herstellergarantie] => Array ([name] => pa_herstellergarantie [value] => [position] => 3 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1) [pa_schlagwoerter] => Array ([name] => pa_schlagwoerter [value] => [position] => 4 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1) [pa_lieferzeit] => Array ([name] => pa_lieferzeit [value] => [position] => 5 [is_visible] => 1 [is_variation] => 0 [is_taxonomy] => 1)))
我使用的wp_set_object_terms方法基本上是错了吗? 现在我不知道该怎么做了。有人可以帮我吗?谢谢!
到目前为止,我已经试过了藏汉之前
pa_hersteller
存在! 这也不起作用,因为append-boolean只是将多个值设置为一个属性。 如果append为false,则现有属性值将被覆盖,如果append为true,则现有属性仍然存在,并且新的属性值将被添加。 – MrSteed