Php 将多个部分添加到“电子商务”选项卡

Php 将多个部分添加到“电子商务”选项卡,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我正在尝试向WooCommerce管理产品选项卡添加两个不同的部分。 以下代码仅在我不使用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 Pro

我正在尝试向WooCommerce管理产品选项卡添加两个不同的部分。 以下代码仅在我不使用
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;
        }

如果
if语句
为true,则需要返回一个数组,因为
woocommerce\u get\u settings\u
需要返回一个数组

因此,您的代码应该如下所示:

// 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;
    }
}

如果
if语句
为true,则需要返回一个数组,因为
woocommerce\u get\u settings\u
需要返回一个数组

因此,您的代码应该如下所示:

// 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;
    }
}