Добавить несколько разделов на вкладку WooCommerce - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь добавить два разных раздела на вкладку Продукты WooCommerce Admin. Следующий код работает только тогда, когда я не использую elseif(), если я добавлю это, я получу следующую ошибку:

Warning: Invalid argument supplied for foreach() in /wp-content/plugins/woocommerce/includes/admin/class-wc-admin-settings.php on line 197

Код:

// Create a section on the Products tab
    add_filter('woocommerce_get_sections_products', 'myplugin_add_section');
    function myplugin_add_section( $sections ) {

        $sections['myplugin'] = __('My Plugin page', 'myplugin');
        $sections['mypluginlog'] = __('My plugin Log', 'myplugin');
        return $sections;

    }

// Add Settings
    add_filter('woocommerce_get_settings_products', 'myplugin_all_settings', 10, 2);
    function myplugin_all_settings( $settings, $current_section ) {
        if ($current_section == 'myplugin') {
        // do something
        }
        elseif($current_section == 'mypluginlog') {
        // do something else
        }
        else {
        return $settings;
        }

1 Ответ

0 голосов
/ 10 сентября 2018

вам нужно вернуть массив, если if statement истинно как woocommerce_get_settings_, ожидая массив в качестве возврата.

поэтому ваш код должен выглядеть следующим образом:

// Create a section on the Products tab
add_filter('woocommerce_get_sections_products', 'myplugin_add_section');
function myplugin_add_section($sections)
{

    $sections['myplugin'] = __('My Plugin page', 'myplugin');
    $sections['mypluginlog'] = __('My plugin Log', 'myplugin');
    return $sections;

}
add_filter('woocommerce_get_settings_products', 'myplugin_all_settings', 10, 2);
function myplugin_all_settings($settings, $current_section)
{

    if ($current_section == 'myplugin') {
        $my_settings = array();

        return $my_settings;


    } elseif ($current_section == 'mypluginlog') {
        $my_settings = array();

        return $my_settings;
    } else {
        return $settings;
    }
}

Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...