是否将项目添加到筛选器内的匿名数组?

时间:2020-07-07 作者:photogenic

我正在尝试在ATUM库存管理插件中添加一个user\\u角色。目前,它只对管理员可见,而我还想添加shop\\u经理。但是我无法成功地添加它,除非我直接在插件中添加它。

这是ATUM插件中放置过滤器的地方。

namespace Atum\\Components;
class AtumCapabilities {
   private function __construct(){
      $admin_roles = (array) apply_filters( \'atum/capabilities/admin_roles\', [ get_role( \'administrator\' ) ] );  
  
      foreach ( $admin_roles as $admin_role ) {

            if ( $admin_role instanceof \\WP_Role ) {
                foreach ( $this->capabilities as $cap ) {
                    $admin_role->add_cap( $cap );
                }
            }

        }
   }
}
这就是我一直在使用的代码。我还尝试了这方面的变化,更改了优先级或将其包含在;初始化(&Q);钩

add_filter(\'atum/capabilities/admin_roles\', function($roles) {
  $roles[] = get_role(\'shop_manager\');
  return $roles;
});
有人知道我如何添加get_role(\'shop_manager\')atum/capabilities/admin_roles 滤器

谢谢

1 个回复
SO网友:photogenic

我现在通过这段代码添加了这些功能。我对我的解决方案不满意,如果有人能找到一种合适的方法添加到过滤器中,那就太好了。我真的很想知道如何使它正常工作。

add_action( \'admin_init\', \'jp_add_atum_caps_to_shop_manager\');
function jp_add_atum_caps_to_shop_manager() {
    if(!user_can( 217 , \'atum_read_inbound_stock\')) {
        $capabilities = array(

                // Purchase price caps.
                \'edit_purchase_price\',
                \'view_purchase_price\',

                // Inbound Stock caps.
                \'read_inbound_stock\',

                // Out Stock Threshold caps.
                \'edit_out_stock_threshold\',

                // Settings caps.
                \'manage_settings\',
                \'edit_visual_settings\',

                // ATUM menus caps.
                \'view_admin_menu\',
                \'view_admin_bar_menu\',

                // Other caps.
                \'export_data\',
                \'view_statistics\',
            ); 

        // Add the ATUM prefix to all the capabilities.
        $capabilities = preg_filter( \'/^/\', \'atum_\' , $capabilities );

        $admin_role = get_role( \'shop_manager\' );

        foreach ( $capabilities as $cap ) {
            $admin_role->add_cap( $cap );
        }  
    }
}

相关推荐

What is this? MySQL array?

在我的phpMyAdmin中,一个元项具有以下值:{a:1:{i:0s:82:\"http://parquedasfeiras.online/wp-content/uploads/2019/12/alefit-e1576791796664.jpg”}} 这是什么?MySQL数组类型?