2014-12-02 36 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