modify a function filter

时间:2012-11-09 作者:SolaceBeforeDawn

我使用的是最新版本的wp电子商务(3.89),并且引入了一个新的过滤器,以允许基于角色访问某些仪表板功能,如销售页面或升级功能。但是,核心文件中的默认角色当前设置为“管理员”。

我想做的是使用原始过滤器,通过将修改后的代码放在我的函数文件中来修改它,以覆盖它。

那么如何修改它:(来自插件文件wp ecommerce/wpsc admin/admin.php

$purchase_logs_cap = apply_filters( \'wpsc_purchase_logs_cap\', \'administrator\' );
$page_hooks[] = $purchase_logs_page = add_submenu_page( \'index.php\', __( \'Store Sales\', \'wpsc\' ), __( \'Store Sales\', \'wpsc\' ), $purchase_logs_cap, \'wpsc-purchase-logs\', \'wpsc_display_purchase_logs_page\' );
像这样的事情

remove_filter(\'wpsc_purchase_logs_cap\', \'administrator\');
function sh_wpsc_admin_pages($purchase_logs_cap) {
apply_filters( \'wpsc_purchase_logs_cap\', \'editor\' );

}

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

筛选器存在于avoid 插件代码中需要替换。

您可能需要的是:

add_filter( \'wpsc_purchase_logs_cap\', \'wpse_72095_admin_to_editor\' );

function wpse_72095_admin_to_editor()
{
    return \'edit_others_posts\';
}
这将把能力/角色更改为editor.

结束