我正在创建自定义产品插入插件,但似乎没有内置用于插入新产品分类的功能。 这就是我的所作所为:
function insert_product_terms( $taxonomy ){
global $wpdb;
$result = $wpdb->get_row( "SELECT * FROM wp_woocommerce_attribute_taxonomies WHERE attribute_name = '" . sanitize_title_for_query( $taxonomy ) . "'" );
if(empty($result)){
$wpdb->insert(
'wp_woocommerce_attribute_taxonomies',
array(
'attribute_name' => sanitize_title_for_query( $taxonomy ),
'attribute_label' => $taxonomy,
'attribute_type' => 'select',
'attribute_orderby' => 'menu_order',
'attribute_public' => '0'
),
array('%s', '%s', '%s', '%s', '%s')
);
}
return sanitize_title_for_query($taxonomy);
}
这确实会将我想要的分类插入到数据库中,但出于某种原因,如果我转到前端Woo Commerce属性页面,它将不会显示,直到我通过前端添加另一个。有谁知道如何解决这个问题? 提前谢谢。
答案 0 :(得分:0)
尝试在返回之前添加这两行......
flush_rewrite_rules();
delete_transient( 'wc_attribute_taxonomies' );
像这样
function insert_product_terms( $taxonomy ){
global $wpdb;
$result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = '" . sanitize_title_for_query( $taxonomy ) . "'" );
if(empty($result)){
$wpdb->insert(
$wpdb->prefix . 'woocommerce_attribute_taxonomies',
array(
'attribute_name' => sanitize_title_for_query( $taxonomy ),
'attribute_label' => $taxonomy,
'attribute_type' => 'select',
'attribute_orderby' => 'menu_order',
'attribute_public' => '0'
),
array('%s', '%s', '%s', '%s', '%s')
);
}
flush_rewrite_rules();
delete_transient( 'wc_attribute_taxonomies' );
return sanitize_title_for_query($taxonomy);
}