it-swarm-ja.com

関数フィルタを修正する

最新バージョンのwp-eコマース(3.89)を使用しています。セールスページやアップグレード機能などの特定のダッシュボード機能へのロールベースのアクセスを可能にする新しいフィルタが導入されました。ただし、コアファイルのデフォルトの役割は現在「管理者」に設定されています。

私がやりたいことは、元のフィルタを使い、それを上書きするために私の関数ファイルに修正されたコードを入れることによってそれを修正することです。

だからこれを変更する方法:(プラグインファイルのwp - eコマース/ 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
Sol

フィルタは回避プラグインコードの置換の必要性のために存在します。

あなたがおそらく必要としているのは、

add_filter( 'wpsc_purchase_logs_cap', 'wpse_72095_admin_to_editor' );

function wpse_72095_admin_to_editor()
{
    return 'edit_others_posts';
}

これは機能/役割をeditorに変更します。

5
fuxia