进口和在Woocommerce 3.x中输出产品品牌

时间:2017-09-17 08:12:34

标签: php wordpress import woocommerce

自WooCommerce 3.x以来,现在有本地品牌支持。但是,品牌不属于产品的默认导入/导出功能。我找到了有关如何在导入/导出中添加自定义列的文档:

/**
 * Add the custom column to the exporter and the exporter column menu.
 *
 * @param array $columns
 * @return array $columns
 */
function add_export_column( $columns ) {

    // column slug => column name
    $columns['custom_column'] = 'Custom Column';

    return $columns;
}
add_filter( 'woocommerce_product_export_column_names', 'add_export_column' );
add_filter( 'woocommerce_product_export_product_default_columns', 'add_export_column' );

/**
 * Provide the data to be exported for one item in the column.
 *
 * @param mixed $value (default: '')
 * @param WC_Product $product
 * @return mixed $value - Should be in a format that can be output into a text file (string, numeric, etc).
 */
function add_export_data( $value, $product ) {
    $value = $product->get_meta( 'custom_column', true, 'edit' );
    return $value;
}
// Filter you want to hook into will be: 'woocommerce_product_export_product_column_{$column_slug}'.
add_filter( 'woocommerce_product_export_product_column_custom_column', 'add_export_data', 10, 2 );

使用$product->get_meta( 'brands', true, 'edit' );无法解决问题。如何将品牌添加到导入/导出?

更新 我做了什么来解决这个问题.. - 将品牌推向"标签"列 - 在管理员上,按标签批量编辑产品,并标记相应的列。

2 个答案:

答案 0 :(得分:1)

我一直在使用Ultimate Brands插件&我也一直认为必须有一种通过CSV更新自定义分类值的方法。我设法使用Woocommerce产品CSV导入套件导入品牌名称,但还没有找到通过内置的Exporter中的Woocommerce导出的方法。不是开发人员,我认为它必须是与'get_terms'函数相关的东西。我已经尝试了很多变化而没有运气。认为它应该看起来像这样,但还没有设法让它工作:

function add_export_data() {
        $product_id = $post->ID;
        $value =  get_terms($product_id, 'product_brand');      
        return $value;
} 

答案 1 :(得分:0)

您要加入的过滤器为:'woocommerce_product_export_product_column _ {$ column_slug}'。

因此,如果您的自定义列名称为product_brand,则add_filter将类似于:

add_filter( 'woocommerce_product_export_product_column_product_brand', 'add_export_data', 10, 2 );

function add_export_data( $value, $product ) {
   $value = $product->get_meta( 'product_brand', true, 'edit' );
   return $value;
}

如果您的自定义列名称为brands,则add_filter将类似于:

add_filter( 'woocommerce_product_export_product_column_brands', 'add_export_data', 10, 2 );

function add_export_data( $value, $product ) {
   $value = $product->get_meta( 'brands', true, 'edit' );
   return $value;
}