Woccerce 相关和交叉销售类别

时间:2021-07-14 12:06:59

标签: php wordpress woocommerce

美好的一天,

我在下面的代码中有这个代码你会发现下面的 $value = 'Custom value';和 $value = '自定义值 2';这里我需要为产品添加相关类别并交叉销售产品

$value = '自定义值';需要调出产品所在的类别和 $value = '自定义值2';需要调出该产品的交叉销售类别

// Add Column Names
if( !function_exists('yith_wcbep_add_columns') ) {
 function yith_wcbep_add_columns( $columns ) {

 $columns['new_column'] = 'Related...';
 $columns['new_column2'] = 'Also See...';

 return $columns;
 }

   add_filter( 'yith_wcbep_default_columns', 'yith_wcbep_add_columns', 99 );
}

// Add Column content to Column Names
if( !function_exists('yith_wcbep_manage_custom_columns_add_columns_to_new_column') ) {
 function yith_wcbep_manage_custom_columns_add_columns_to_new_column( $value, $column_name, $post ) {

 if ( 'new_column' == $column_name ) {
 $value = 'Custom value';
 }
if ( 'new_column2' == $column_name ) {

 $value = 'Custom value2';
 }
 return $value;
 }

   add_filter( 'yith_wcbep_manage_custom_columns', 'yith_wcbep_manage_custom_columns_add_columns_to_new_column', 10, 3 );
}

看截图 enter image description here

交叉销售可以通过这样的SELECT meta_value FROM wp_termmeta WHERE term_id='$id' AND meta_key=\'crosssell\'";

但即便如此,它也只是一片空白。

1 个答案:

答案 0 :(得分:0)

这是我花费数天和数小时进行测试和测试后的解决方案。

第一个 $columns['new_column'];

我添加了这个它带来了类别

if ( 'new_column' == $column_name ) {
 /*Begin*/
    $product = wc_get_product($post);
    $categories = strip_tags(get_the_term_list( $product->get_id(), 'product_cat', '', ',', '' ));
 
 /*End*/
     $value = $categories;
 }

然后在 $columns['new_column2'];我将其更改为以下内容,首先我得到了 prod_cat_args 数组,我在 $woo_categories 上做了一个 foreach 然后我得到了结果 $cat_term_id = $woo_cat_id;从那里我将它添加到 get_term_meta 并且它起作用了!

if ( 'new_column2' == $column_name ) {
    /*Begin*/
        
         $prod_cat_args = array(
      'taxonomy'     => 'product_cat', //woocommerce
      'orderby'      => 'name',
      'empty'        => 0
    );
    
    $woo_categories = get_the_terms( $post->ID, 'product_cat' );
    
    foreach ( $woo_categories as $woo_cat ) {
        $woo_cat_id = $woo_cat->term_id; //category ID
        $woo_cat_name = $woo_cat->name; //category name
    }
        $cat_term_id = $woo_cat_id;
        $crosssell = get_term_meta( $cat_term_id, 'crosssell', true );
    /*End*/
        
     $value = $crosssell;
        }

// Add Column Names
if( !function_exists('yith_wcbep_add_columns') ) {
 function yith_wcbep_add_columns( $columns ) {

 $columns['new_column'] = 'Related...';
 $columns['new_column2'] = 'Also See...';

 return $columns;
 }

   add_filter( 'yith_wcbep_default_columns', 'yith_wcbep_add_columns', 99 );
}

// Add Column content to Column Names
if( !function_exists('yith_wcbep_manage_custom_columns_add_columns_to_new_column') ) {
 function yith_wcbep_manage_custom_columns_add_columns_to_new_column( $value, $column_name, $post ) {

 if ( 'new_column' == $column_name ) {
 /*Begin*/
    $product = wc_get_product($post);
    $categories = strip_tags(get_the_term_list( $product->get_id(), 'product_cat', '', ',', '' ));
 
 /*End*/
     $value = $categories;
 }
if ( 'new_column2' == $column_name ) {
/*Begin*/
    
     $prod_cat_args = array(
  'taxonomy'     => 'product_cat', //woocommerce
  'orderby'      => 'name',
  'empty'        => 0
);

//$woo_categories = get_categories( $prod_cat_args );
$woo_categories = get_the_terms( $post->ID, 'product_cat' );

foreach ( $woo_categories as $woo_cat ) {
    $woo_cat_id = $woo_cat->term_id; //category ID
    $woo_cat_name = $woo_cat->name; //category name
}
    $cat_term_id = $woo_cat_id;
    $crosssell = get_term_meta( $cat_term_id, 'crosssell', true );
/*End*/
    
 $value = $crosssell;
    }
 return $value;
 }

   add_filter( 'yith_wcbep_manage_custom_columns', 'yith_wcbep_manage_custom_columns_add_columns_to_new_column', 10, 3 );
}

希望这能帮助其他任何人