更新 WooCommerce 产品类别描述和缩略图 ID

问题描述

我有一组数据,我想用这些数据更新我的产品类别(分类)元数据。具体来说,我正在尝试更新 descriptionthumbnail url 值。我尝试使用多个 wordpress 函数,但没有一个起作用!我没有收到任何错误,但这些值也没有更新。

$row_data = array(
      'Term ID' => 150,'Name' => "my 1st category",'Slug' => "my-1st-category",'Term URI' => "",'Parent Term ID' => "",'Description' => "My best description on this category that would change your life forever!",'display Type' => "",'Image' => "https://myexample.site/wp-content/"
    );

// This did not work!
wp_update_term($row_data['Term ID'],'product_cat',$row_data);  

// This did not work either!
update_term_Meta($row_data['Term ID'],'description',$row_data['Description']);  

// This did not work either!
update_woocommerce_term_Meta($row_data['Term ID'],'thumbnail_id',$row_data['Image']);

有什么我遗漏的吗?你会帮助兄弟吗?

thumbnail_id 是我在这里使用的正确字段名称吗?

update_woocommerce_term_Meta 是更新缩略图 url 的正确函数吗?

谢谢。

enter image description here

解决方法

主要问题来自于插入或更新术语错误的数组键。

来自您的自定义数组(更新)

$row_data = array(
    'Term ID'        => 150,'Name'           => 'my 1st category','Slug'           => 'my-1st-category','Taxonomy'       => 'product_cat'
    'Parent Term ID' => 0,'Description'    => __("My best description on this category that would change your life forever!","woocommerce"),'Display Type'   => "",'Image ID'       => "356",);
  1. 要更新术语说明,请按如下方式使用 WordPress wp_update_term() function
wp_update_term( $row_data['Term ID'],$row_data['Taxonomy'],array('description' => $row_data['Description']) );
  1. 要更新缩略图 ID (而不是图像网址),请按如下方式使用 update_term_meta() function
update_term_meta( $row_data['Term ID'],'thumbnail_id',$row_data['Image ID'] ); 

两者都经过测试。


要插入一个新术语,您将使用 WordPress wp_insert_term() function,例如:

$term_data = wp_insert_term( $row_data['Name'],array(
    'description' => $row_data['Description'],'slug'        => $row_data['Slug'],'parent'      => $row_data['Parent Term ID'],) );

if ( ! empty($row_data['Display Type']) ) {
    update_term_meta( $row_data['Term ID'],'display_type',$row_data['Display Type'] );

if ( ! empty($row_data['Image ID']) ) {
    update_term_meta( $row_data['Term ID'],$row_data['Image ID'] );
}