当前位置: 首页 > 知识库问答 >
问题:

如何在Woocommerce中的产品保存中以编程方式更新产品属性

祁嘉瑞
2023-03-14

每次根据其他几个字段的内容保存产品时,我都希望更新产品在我的商店中的属性。

然而,我正在努力让我的属性正确出现。

最初,我试图使用以下功能根据这个问题的公认答案更新产品:

add_action( 'woocommerce_process_product_meta', 'update_dietary' );

function update_dietary( $object_id ) {
  wp_set_object_terms( $object_id, 'UK Manufactured', 'pa_dietary' , false);
}

这将“UK Manufactured”添加到了“pa_dietary”分类法的可用术语列表中,但在我检查产品属性时,它们不可见。

接下来,我尝试了上述问题中第二个答案的变体:

add_action( 'woocommerce_process_product_meta', 'update_dietary' );

function update_dietary( $object_id ) {
  $product_attributes = array();
  $product_attributes['pa_dietary'] = array(
      'name' => 'Dietary',
      'value' => 'UK Manufactured',
      'position' => 1,
      'is_visible' => 1,
      'is_variation' => 1,
      'is_taxonomy' => 0
  );

  update_post_meta( $object_id,'_product_attributes', $product_attributes);
}

这也无法更新产品的属性。

在这一点上,我不知道下一步该尝试什么。使用woocommerce_process_product_meta操作似乎是有效的,因为这个术语确实被添加到Wordpress中,但我认为WooCommerce处理产品属性的方式一定有什么我错过了。

如果有人能给我指出正确的方向,我将不胜感激。

共有1个答案

柏高洁
2023-03-14

尝试增加钩子的优先级,如下所示:

add_action( 'woocommerce_process_product_meta', 'update_dietary',999 );
 类似资料:
  • 我正在使用在woocommerce中以编程方式添加产品。除了产品属性外,其他所有功能都正常工作。除非我从管理员处单击“更新”,否则产品页面视图中不会显示产品属性。 我正在添加成吨的产品,所以有没有办法在产品页面的下拉列表中显示变化。 这是我的代码,它工作正常,所有内容都放在正确的字段中,如果不单击“更新”,它就不会在产品页面上显示选项。

  • 我需要如此的帮助。我试图以编程方式更新WooCommerce产品库存数量。我们有一个供应商饲料给我们通过一些JSON。我可以从提要中读取股票,并可以正确地从后元数据中提取数据。我使用最新版本的WP和WOO。PHP是7.2 下面是我如何从SKU中查找产品ID。 这将返回正确的ID,我可以使用它查看已存在的当前元数据: 然后我更新我从提要中得到的股票。这可以是从零到x或x到零的股票,以及介于两者之间的

  • 如何从插件为WooCommerce创建属性?我只发现: 从这个问题 但这种方法需要某些产品的id。我需要生成一些未附加到任何产品的属性。

  • 我在任何地方都没看到有人问过这个问题,所以下面是: 我在我的Magento商店里有几个属性,但是为了让用户从过于杂乱的页面中解脱出来,我用标签把产品页面上不同类型的信息分开。第一个选项卡显示产品描述,它目前是一组HTML,基本上是通过显示易于理解的图标来镜像属性,图标下有属性值,第二个选项卡显示更深入的信息,属性是从DB调用的。 现在,当编辑或添加产品时,我基本上必须添加两次属性:一次作为实际的产

  • 我想创建一个产品从前端直接到一个分组的产品在WooCommerce。现在它正在“简单产品”中创建一个产品。 截图: 当前代码:

  • 我试图以编程方式批量添加WooCommerce中的产品,但出于某种原因,它只是添加了第一个产品。我正在向一个应用程序发出请求,该应用程序返回带有产品名称和描述的JSON响应。到目前为止,我的代码看起来像下面的代码: