我希望根据当前用户是否是产品作者来启用支付网关“cod”。基本上,用户在购买自己的产品时,应该有额外的现金支付网关,但显然仅限于他自己的产品。我们使用 Dokan 创建供应商站点。
到目前为止我的代码:
add_filter('woocommerce_available_payment_gateways', 'filter_gateways', 1);
function filter_gateways($gateways)
{
global $woocommerce
$current_user = wp_get_current_user();
$users_product = false;
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ){
$post_obj = get_post( $cart_item['product_id'] );
$post_author = $post_obj->post_author;
if ( is_user_logged_in() && $current_user->ID === $post_author ) $users_product = true;
}
if ( $users_product ! = true ) {
unset($gateways['cod']);
}
return $gateways;
}
有谁知道我哪里出错了?
您的函数中几乎没有 PHP 语法错误。试试这个。
add_filter('woocommerce_available_payment_gateways', 'filter_gateways', 1);
function filter_gateways($gateways)
{
global $woocommerce;
$current_user = wp_get_current_user();
$users_product = false;
foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ){
$post_obj = get_post( $cart_item['product_id'] );
$post_author = $post_obj->post_author;
if ( is_user_logged_in() && $current_user->ID == $post_author ) $users_product = true;
}
if ( $users_product != true ) {
unset($gateways['cod']);
}
return $gateways;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句