2016-06-12 11 views
4

私はWorpdress/WooCommerce用のプラグインを作成しています。私はすべてのことをやったが、今はinstruction tutorialのように、woocommerce API設定にオプションタブを追加したいと思う。 WooCommerceのプラグインの作成:API設定へのオプションタブの追加

この

は私のコードです:

add_filter('woocommerce_get_sections_api', 'some_function_to_add_tab'); 

function some_function_to_add_tab($sections) { 
    $sections['some_settings'] = __('Some Settings', 'text-domain'); 
    return $sections; 
} 

add_filter('woocommerce_get_settings_api', 'some_tab_settings', 10, 2); 

function some_tab_settings($settings, $current_section) { 
    if ($current_section == 'some_settings') { 
     echo "settings here"; 
    } else { 
     return $settings; 
    } 
} 

しかし、私はいくつかのエラーを取得しています:

警告:Cでsome_tab_settings()の引数2がありません:\ OpenServerの\ドメイン\ WP-devの\ wp-content \ plugins \ some-plugins \ some_plugin.php on line 30

注意:未定義の変数:current_sectionはC:\ OpenServer \ domains \ wp-dev \ wp-content \ plugins \ some-plugin \ some_pluginにあります。 php on line 31

関連

ADD_FILTER( 'woocommerce_get_settings_api'、 'some_tab_settings'、10、2)。 ==>ライン:30

関数some_tab_settings($設定は、$ current_section){==>ライン:31

どのように私はこれを達成することができますか?

+0

@LoicTheAzteあなたは出力されたデータを見ることがecho var_dump();機能を使用することができますすることができます私はもう一つの質問があります:)私はどのように私はデータベースにデータを挿入するチュートリアルのフォームを使用することができます説明することはできますか?私のテーブルに「保存」ボタンとデータを挿入することで入力に何かを書くのが好きです。私は今どのように挿入するか、array()によって作成されたフォームを使用する方法ではない – pwnz22

答えて

2

WC for WooCommerce API Settingsのコアソースコードを最初みるとthis useful only tutorial(2016)にIは、被験体に発見しました。コードは次のとおりです。

// creating a new sub tab in API settings 
add_filter('woocommerce_get_sections_api','add_subtab'); 
function add_subtab($settings_tabs) { 
    $settings_tabs['custom_settings'] = __('Custom Settings', 'woocommerce-custom-settings-tab'); 
    return $settings_tabs; 
} 


// adding settings (HTML Form) 
add_filter('woocommerce_get_settings_api', 'add_subtab_settings', 10, 2); 
function add_subtab_settings($settings) { 
    $current_section = (isset($_GET['section']) && !empty($_GET['section']))? $_GET['section']:''; 
    if ($current_section == 'custom_settings') { 
     $custom_settings = array(); 
     $custom_settings[] = array('name' => __('Custom Settings', 'text-domain'), 
            'type' => 'title', 
            'desc' => __('The following options are used to ...', 'text-domain'), 
            'id' => 'custom_settings' 
           ); 

     $custom_settings[] = array(
            'name'  => __('Field 1', 'text-domain'), 
            'id'  => 'field_one', 
            'type'  => 'text', 
            'default' => get_option('field_one'), 

           ); 

     $custom_settings[] = array('type' => 'sectionend', 'id' => 'test-options');    
     return $custom_settings; 
    } else { 
     // If not, return the standard settings 
     return $settings; 
    } 
} 

woocommerce設定タブAPIに新しいタブとサブタブを作成するために使用します。 2番目の関数は、設定を編集して保存できるHTMLフィールドを表示します。新しい設定を使用して:

をあなたは今ちょうどget_option()機能を通じて、他のWordPress/WooCommerce設定だろうあなたのような新しく作成した設定を使用しますDaniel Halmagean


Updateへ

感謝および設定の定義済みのID(下記の参照を参照)。

たとえば、arrayのIDが'custom_settings'の場合、get_option('custom_settings')を使用します。 WooCommerceに設定を追加する方法の詳細については、wooThemes: Settings APIを参照してください。

$my_data = get_option('custom_settings'); 
echo var_dump($my_data); 

参考:

+0

didntは本当にこのフォームを使用する方法を理解していなかった:(しかし、私はdocumentaionを読んで続ける:) – pwnz22

0

"woocommerce_get_settings_products"フックで試してください。この(woocommerce_get_sections_api)フックから現在のセクションを取得することはできません。

add_filter('woocommerce_get_settings_products', 'some_tab_settings', 10, 2); 

function some_tab_settings($settings, $current_section) { 
    if ($current_section == 'some_settings') { 
     echo "settings here"; 
    } else { 
     return $settings; 
    } 
} 
+0

しかし、私はここに私の設定を入れたい。 http://i.stack.imgur.com/bsjkc.png – pwnz22

+0

このフックADD_FILTER( 'woocommerce_get_sections_products'、 'some_function_to_add_tab')を追加してください。 関数some_function_to_add_tab($セクション){$ セクション[ 'some_settings'] = __( 'いくつかの設定'、 'テキストドメイン'); return $ sections; } –

+0

このフィルタは、[商品]タブにオプションを追加します。しかし、私はAPIセクションに設定タブが必要です。 – pwnz22

関連する問題