拜托,
我如何在 Woocommerce 上设置付款方式“货到付款”仅适用于管理员配置文件用户?
这可能吗?
这意味着,付款方式“货到付款”将在结帐页面上可用,仅适用于登录 WP 并具有管理员配置文件的用户。
感谢您的帮助!
是,但有
woocommerce_available_payment_gateways
和一个条件 is_user_admin()
示例
// define the woocommerce_available_payment_gateways callback
function filter_woocommerce_available_payment_gateways( $available_gateways ) {
$delete = false;
foreach ($available_gateways as $key => $gateway) {
if($gateway === [[[[payment on delivery]]]] && !is_user_admin()){
unset($available_gateways[$key]);
break;
}
}
return $available_gateways;
};
// add the filter
add_filter( 'woocommerce_available_payment_gateways', 'filter_woocommerce_available_payment_gateways', 10, 1 );
我可以通过将 Sco 的代码调整为以下内容来使其工作:
// remove certain payment options if not logged in as staff
public function checkout_limit_payment_methods($available_gateways){
$delete = false;
foreach ($available_gateways as $key => $gateway) {
if($key === "bacs" || $key === "cheque" && !is_user_admin()){
if ( is_user_logged_in() ) {
$user = wp_get_current_user();
$allowed_roles = array( 'shop_manager', 'editor', 'administrator', 'author' );
if ( !array_intersect( $allowed_roles, $user->roles ) ) {
// delete payment methods for any user without roles in array
unset($available_gateways[$key]);
}
} else {
// delete payment methods for any user not logged in
unset($available_gateways[$key]);
}
}
}
return $available_gateways;
}