重写WP类私有函数

时间:2019-12-04 作者:Naveen Guleria

我是社区新手,我想你们专家可以在这方面帮助我。我已经安装了插件,我想覆盖类中的一个函数

    <?php 

 class wf_fedex_woocommerce_shipping_admin{

private function wf_user_permission($auto_generate=null){

$current_minute=(integer)date(\'i\');
        if(!empty($auto_generate) && ($auto_generate==md5($current_minute) || $auto_generate==md5($current_minute+1) ))
        {
            return true;
        }
        $current_user = wp_get_current_user();
        $user_ok = false;
        $wf_roles = apply_filters( \'wf_user_permission_roles\', array(\'administrator\', \'shop_manager\') );

        if ($current_user instanceof WP_User) {
            $role_ok = array_intersect($wf_roles, $current_user->roles);
            if( !empty( $role_ok ) ){
                $user_ok = true;
            }
        }
        return $user_ok;
}
}
?>
我想重写,如果这样,WP将使用我的自定义而不是插件,我需要在新函数中进行一次更改(我的意思是我只需要在数组中传递“subscriber”)

$wf_roles = apply_filters( \'wf_user_permission_roles\', array(\'administrator\', \'shop_manager\', \'subscriber\') );

1 个回复
最合适的回答,由SO网友:Chetan Vaghela 整理而成

正如@jacob所建议的,您可以添加subscriber 使用将角色添加到该数组中add_filter . 在活动主题的函数中添加以下代码。php文件。

add_filter( \'wf_user_permission_roles\', \'wf_user_permission_roles_callback\' ) ;
function wf_user_permission_roles_callback( $roles ) {
    $roles[] = \'subscriber\';
    return $roles;
}

相关推荐

在整个网站中使用OOP插件的方法

我正在为一个网站制作一个插件,我想在一些不同的地方使用这些方法,比如页面模板、短代码等。我不想让插件类成为全局的或创建多个实例(我在插件激活时创建一个实例)。最好的方法是什么?我应该制作使用这些函数的短代码吗?还是有更好的方法?