如果登录了某个用户角色,则启用本地传递

时间:2015-06-26 03:47:58

标签: php wordpress woocommerce woothemes

我目前正致力于通过woocommerce创建批发选项。当您登录并拥有用户角色“wholesale_customer”时,我将批发基础架构关闭。然而,我距离完成还有一步之遥,我无法弄明白。

我想为我们的城镇批发客户提供本地送货服务,就是这样;不是客户或访客用户。目前我们有一个usps插件,为客户和客户购买提供运输。

这是我现在所拥有的,我觉得我很接近,只是缺少一些东西。有人有什么建议吗?

function wholesale_local_delivery( $available_methods ) {
global $woocommerce;
if ( isset( $available_methods['local_delivery'] ) ) {
if (current_user_can('wholesale_customer')) {
unset( $available_methods['local_delivery'] );
}
}
return $available_methods;
}
add_filter( 'woocommerce_available_shipping_methods', 'wholesale_local_delivery' );

P.S。我知道我可以购买Woocommerce插件,但我不想这样做。

1 个答案:

答案 0 :(得分:0)

current_user_can不会检查该角色,它会检查我认为不是您想要的权限。试试这个:

function wholesale_local_delivery($available_methods) {
    global $woocommerce;
    global $current_user;

    $user_roles = $current_user->roles;
    $user_role = array_shift($user_roles);

    if ( isset( $available_methods['local_delivery'] ) ) {
        if ($user_role == 'wholesale_customer' ) {
            unset( $available_methods['local_delivery'] );
        }
    }
    return $available_methods;
}
add_filter( 'woocommerce_package_rates', 'wholesale_local_delivery', 10, 1);