首页 > 解决方案 > WooCommerce 如何更新产品类别描述和缩略图 ID

问题描述

我有一组数据,我想用这些数据更新我的产品类别(分类)元数据。description具体来说,我正在尝试更新thumbnail 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缩略图网址的功能是否正确?

谢谢你。

在此处输入图像描述

标签: phpwordpresswoocommercetaxonomy-termswoocommerce-theming

解决方案


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

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

$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. 要更新术语描述,请使用WordPresswp_update_term()功能,如下所示:
wp_update_term( $row_data['Term ID'], $row_data['Taxonomy'], array('description' => $row_data['Description']) );
  1. 要更新缩略图 ID (而不是图像 URL),请使用如下update_term_meta()函数:
update_term_meta( $row_data['Term ID'], 'thumbnail_id', $row_data['Image ID'] ); 

两者都经过测试。


要插入一个新术语,您将使用WordPresswp_insert_term()函数,例如:

$term_data = wp_insert_term( $row_data['Name'], $row_data['Taxonomy'], 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'], 'thumbnail_id', $row_data['Image ID'] );
}

推荐阅读