在导入时自动从产品标签中分配Woocommerce产品类别

时间:2019-03-10 04:18:52

标签: php wordpress woocommerce taxonomy-terms wpallimport

使用WP All Imports插件导入产品时,我试图从产品标签自动设置Woocommerce产品类别。

例如:我正在将特定的面包屑条作为产品标签导入:运动/鞋/跑步鞋>现在,我希望将该条连接到预定义的类别层次结构:

标签:运动/鞋/跑步鞋=>产品猫:鞋/跑步

也许有一个插件可以在预定义产品类别中放置标签以显示类别中的选定产品?

我发现以下代码接近实现目标所需的代码:

function auto_add_category ($product_id = 0) {

    if (!$product_id) return;

    // because we use save_post action, let's check post type here
    $post_type = get_post_type($post_id);
    if ( "product" != $post_type ) return;

    $tag_categories = array (
        'ring' => 'Jewellery'
        'necklace' => 'Jewellery',
        'dress' => 'Clothing',
    );

    // get_terms returns ALL terms, so we have to add object_ids param to get terms to a specific product
    $product_tags = get_terms( array( 'taxonomy' => 'product_tag', 'object_ids' => $product_id ) );
    foreach ($product_tags as $term) {
        if ($tag_categories[$term->slug] ) {
            $cat = get_term_by( 'name', $tag_categories[$term->slug], 'product_cat' );
            $cat_id = $cat->term_id;
            if ($cat_id) {
                $result =  wp_set_post_terms( $product_id, $cat_id, 'product_cat', true );
            }
        }
    }
}
add_action('save_post','auto_add_category');

1 个答案:

答案 0 :(得分:0)

首先,您需要自己理解逻辑。 对我来说,目前尚不清楚如何过滤所描述的标签集合之一。

一旦知道了逻辑,就可以使用导入设置中的“函数编辑器”字段。 在屏幕底部,您具有所有导入的映射。

您可以将函数放在此处,并在标记字段中使用它。例如:

您具有以下功能:

<?php
function import_rearrange_tags( $tag, $count = 1 ) {
  // Some code here
  return $tag;
}
?>

因此您可以将其用作映射之类的过滤器:

[import_rearrange_tags({tags[1]}, 3)]

我使用第二个参数来显示整个想法。