默认情况下在WordPress中启用woocommerce操作屏幕选项

时间:2020-03-10 17:13:32

标签: php wordpress woocommerce wp-admin

我正在构建一个向订单页面上的woocommerce订单操作列添加新选项的插件。为了确保正确使用此选项,我想以编程方式确保呈现了“操作”屏幕选项(如该列中所示)。我已经搜索了很多,但是找不到这个方向的任何东西。帮助将不胜感激。

我尝试过:

  • 通过添加一些javascript“取消隐藏”操作标签。之所以这样,是因为有很多动态内容,这只会弄乱界面。

  • 安装Simply Show Hooks并尝试查找我可以插入的钩子或过滤器。这也没有任何成功。

  • 此钩子也不起作用:default_hidden_​​meta_boxes

我认为这是一件很简单的事情,这使它更加令人沮丧。 在此先感谢:)

ps。屏幕截图,以澄清我要启用的功能

screenshot for clarification what i'm trying to enable enter image description here

1 个答案:

答案 0 :(得分:0)

我的解决方案更多地是基于要取消选中屏幕选项的方式,但是对于不选中这些选项的选项也同样适用。

将以下内容拖放到您的functions.php文件中,它将可以正常工作。如果用户已经设置了偏好,请记住暂时删除条件。

// add_action('user_register', 'set_user_screen_options'); 
// This function will only fire when a new user is registered 

add_action('admin_init', 'set_user_screen_options'); 
// Use this if you want it to work for users that already exist, just go to admin and reload once, then you can use only the function 'user_register'

function set_user_screen_options() {
    $meta_key['hidden'] = 'manageedit-shop_ordercolumnshidden';
    $meta_value = array(
        'billing_address',
        'shipping_address',
    );

    // set the default hiddens if it has not been set yet, you can remove this for testing, so it will work no matter the preferences saved
    if ( ! get_user_meta( $user->ID, $meta_key['hidden'], true) ) {
        update_user_meta( $user->ID, $meta_key['hidden'], $meta_value );
    }

}

我发现的$meta_key值正在执行以下查询:

SELECT * FROM wp_usermeta WHERE meta_key LIKE '%hidden%'

在这种情况下,$meta_value是每一列的ID值,wc_actions元值是不包括的ID值。

您可以在此处找到更多信息:How to set default screen options?