我需要通过 PHP 代码设置产品的属性。根据 StackOverflow 上的其他线程,有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');
此外,属性“hersteller”甚至没有列在管理后端菜单的属性列表中。
为了调试问题,我还尝试了以下代码:
$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 方法本质上是错误的吗?我现在不知道该怎么办了。这里有人可以帮助我吗?谢谢!