WC供应商-自定义分类清单未在前端保存



我使用的是WC Vendor,并输出了名为";位置";根据他们的建议,在使用wptermchecklist的产品上。我已经把它保存到产品中,但它没有保存前端的复选框选择。这是我添加到product-edit.php模板中的代码

$args = array(
'descendants_and_self'  => 0,
'selected_cats'         => false,
'popular_cats'          => false,
'walker'                => null,
'taxonomy'              => 'location',
'checked_ontop'         => false
);
wp_terms_checklist( $my_postid, $args );

$post_to_edit = array(
'ID'           => $my_postid,
'tax_input'    =>  array( 'location' => array($_POST['tax_input']['location']) )
);

$pid = wp_update_post($post_to_edit);

if ( isset($_POST['tax_input']['location']) && is_array( $_POST['tax_input']['location'] ) ) { 
$location = array_map( 'intval', $_POST['tax_input']['location'] ); 
$location = array_unique( $location ); 
wp_set_post_terms($pid, $location, 'location'); 
}

这是他们使用多选的代码,但我们需要复选框:https://gist.github.com/digitalchild/128033d2d41f682acd4387b595d4f607

我们在表单助手中有一个名为wcv_terms_checklist((的自定义术语清单。它不支持自定义分类法,但我现在已经对它进行了修改以支持它。您可以使用v1.7.10及以上版本中的以下代码在我们的前端获得工作自定义条款清单。

// Output the location checklist 
function form_location( $object_id ) { 

$args = array(
'taxonomy' => 'location',
);
$field = array(
'id'    => 'product_loc_list',
'label' => __( 'Location', 'wcvendors-pro' ),
'class' => 'product_cat_checklist',
);
WCVendors_Pro_Form_Helper::wcv_terms_checklist( $object_id, $args, $field );
} 
add_action( 'wcv_after_product_details', 'form_location' );
// Save the terms 
function save_location( $post_id ){ 
if ( isset(  $_POST[ 'location' ] ) && is_array( $_POST[ 'location' ] ) ) { 
$location = array_map( 'intval', $_POST[ 'location' ] ); 
$location = array_unique( $location ); 
wp_set_post_terms( $post_id, $location, 'location' ); 
} 
} 
add_action( 'wcv_save_product', 'save_location' ); 

Gist在这里可用-https://gist.github.com/digitalchild/09e15649425845fef0b8d3af75c79dd1

相关内容

  • 没有找到相关文章

最新更新