我正在构建一个向订单页面上的woocommerce订单操作列添加新选项的插件。为了确保正确使用此选项,我想以编程方式确保呈现了“操作”屏幕选项(如该列中所示)。我已经搜索了很多,但是找不到这个方向的任何东西。帮助将不胜感激。
我尝试过:
通过添加一些javascript“取消隐藏”操作标签。之所以这样,是因为有很多动态内容,这只会弄乱界面。
安装Simply Show Hooks并尝试查找我可以插入的钩子或过滤器。这也没有任何成功。
此钩子也不起作用:default_hidden_meta_boxes
我认为这是一件很简单的事情,这使它更加令人沮丧。 在此先感谢:)
ps。屏幕截图,以澄清我要启用的功能
答案 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?