2014-12-02 47 views
2

你好我创建一个插件,当我激活它在这第一个代码中创建属性的大小和颜色,我创造第2个功能无法正常工作焕激活插件

global $wpdb; 
// attributes parameters 
$wpm_attributes = array(
    array('label' => 'Size', 'name' => 'size','type' => 'select',), 
    array('label' => 'Color', 'name' => 'color','type' => 'select',) 
); 
//create default attributes 
foreach ($wpm_attributes as $attr) { 
    $attribute = array(
     'attribute_label' => $attr['label'], 
     'attribute_name' => $attr['name'], 
     'attribute_type' => $attr['type'], 
     'attribute_orderby' => 'menu_order' 
    ); 
    if(!term_exists($attribute)){ 
     $wpdb->insert($wpdb->prefix . 'woocommerce_attribute_taxonomies', $attribute); 
     delete_transient('wc_attribute_taxonomies'); 
    } 
} 

它后,我的工作100%的罚款插件创造条件代码

global $wpdb; 
$size_terms = array(
    array('label' => '2-XL',  'slug' => '2-xl'), 
    array('label' => '3-XL',  'slug' => '3-xl'), 
    array('label' => '4-XL',  'slug' => '4-xl'), 
    array('label' => '5-XL',  'slug' => '5-xl'), 
    array('label' => '6-XL',  'slug' => '6-xl'), 
    array('label' => 'L',   'slug' => 'l'), 
    array('label' => 'M',   'slug' => 'm'), 
    array('label' => 'S',   'slug' => 's'), 
    array('label' => 'XL',   'slug' => 'xl'), 
    array('label' => 'XS',   'slug' => 'xs'), 
    array('label' => 'XXL',  'slug' => 'xxl'), 
    array('label' => 'Custom Size','slug' => 'custom-size') 
); 
// //insert default trems 
foreach ($size_terms as $term) { 
    //if(!term_exists($term['label'], 'pa_size')){ 
     wp_insert_term($term['label'], 'pa_size', array('slug' => $term['slug'])); 
    //} 
} 

,但在第一次激活插件只是增加属性的大小和颜色和长期功能后不工作,当我重新再插件在第二时间方面增加它为什么不togather工作的第一激活?

+0

任何一个在这里?请帮我解决它 – 2014-12-02 12:28:12

+1

你试试这个函数还是不行register_activation_hook() – deemi 2014-12-02 13:18:32

回答

1

当您尝试在插件激活中添加数据时,请始终在主插件文件中使用此函数register_activation_hook()

现在在你的代码试试这个

<?php 
/* 
    Plugin Name: Your Plugin Name 
    Plugin URI: http://Plugin URI 
    Description: Plugin Description 
    Author: You 
    Version: 1.0 
    Author URI: http:// 
*/ 

function function_name(){ 
    global $wpdb; 
    // attributes parameters 
    $wpm_attributes = array(
     array('label' => 'Size', 'name' => 'size','type' => 'select',), 
     array('label' => 'Color', 'name' => 'color','type' => 'select',) 
    ); 
    //create default attributes 
    foreach ($wpm_attributes as $attr) { 
     $attribute = array(
      'attribute_label' => $attr['label'], 
      'attribute_name' => $attr['name'], 
      'attribute_type' => $attr['type'], 
      'attribute_orderby' => 'menu_order' 
     ); 
    if(!term_exists($attribute)){ 
     $wpdb->insert($wpdb->prefix . 'woocommerce_attribute_taxonomies', $attribute); 
     delete_transient('wc_attribute_taxonomies'); 
    } 
    } 

    // Your Second Data Entry 
    $size_terms = array(
     array('label' => '2-XL',  'slug' => '2-xl'), 
     array('label' => '3-XL',  'slug' => '3-xl'), 
     array('label' => '4-XL',  'slug' => '4-xl'), 
     array('label' => '5-XL',  'slug' => '5-xl'), 
     array('label' => '6-XL',  'slug' => '6-xl'), 
     array('label' => 'L',   'slug' => 'l'), 
     array('label' => 'M',   'slug' => 'm'), 
     array('label' => 'S',   'slug' => 's'), 
     array('label' => 'XL',   'slug' => 'xl'), 
     array('label' => 'XS',   'slug' => 'xs'), 
     array('label' => 'XXL',  'slug' => 'xxl'), 
     array('label' => 'Custom Size','slug' => 'custom-size') 
); 
    // //insert default trems 
    foreach ($size_terms as $term) { 
    //if(!term_exists($term['label'], 'pa_size')){ 
     wp_insert_term($term['label'], 'pa_size', array('slug' => $term['slug'])); 
    //} 
    } 
} 
register_activation_hook(__FILE__, 'function_name'); 
?> 

注:最好的做法是写在文件的顶部这段代码,但不neccessry

希望这将帮助你

+0

谢谢男人的帮助 – 2014-12-03 09:58:55

+0

你能帮我用另一个代码吗? – 2014-12-03 10:00:04

+0

我如何添加条款价格?我的意思是产品价格是50美元,当我们在头版选择它时,我们将价格设定为XL $ 20,所以它应该是$ 50 + $ 20 = $ 70如何定义evry尺寸的价格? – 2014-12-03 10:38:14