根据用户角色禁用WooCommerce签出

时间:2016-08-08 作者:Bryan

我想禁用基于用户角色的签出。例如,我有两个角色;已验证用户和无效用户。注册后,默认情况下用户将无效,直到手动移动到已验证的用户角色。我希望无效用户能够查看并添加到购物车,但无法结账。

BONUS: 我还希望能够控制无效用户导航到签出时的行为。

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

Woocommerce在这里被认为是离题的,但作为一个普遍的答案,它被认为是检查功能而不是角色的最佳实践

在WP中,这是这样做的:

add_action(\'init\', \'wpse_capability_check\');  // hooked on \'init\' but depends on your actual code logic
function wpse_capability_check(){

  // you should check on a capability that only validated user have
  if( current_user_can( \'validated_user_cap\' ) {
    // DO STUFF HERE FOR VALIDATED USERS
  }

  // you should check on a capability that only invalidated user have
  if( current_user_can( \'invalidated_user_cap\' ) {
    // DO STUFF HERE FOR INVALIDATED USERS
  }

}
退房https://codex.wordpress.org/Function_Reference/add_cap 了解如何为角色添加能力

这并不意味着您不能使用自定义cap添加新角色,但您的逻辑应该取决于功能,而不是角色

BONUS: 同样的逻辑也适用于这里,您可以在触发签出过程时检查用户能力。您可能会在该进程上挂接另一个检查函数

相关推荐