$ wpdb插入后,Wordpress不会同步WooCommerce分类

时间:2016-04-01 08:50:27

标签: php wordpress woocommerce

我正在创建自定义产品插入插件,但似乎没有内置用于插入新产品分类的功能。 这就是我的所作所为:

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属性页面,它将不会显示,直到我通过前端添加另一个。有谁知道如何解决这个问题? 提前谢谢。

1 个答案:

答案 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);
}