停用针对特定用户元数据的WooCommerce结帐付款

时间:2019-05-13 15:39:07

标签: php wordpress woocommerce cart checkout

我的客户希望允许某些特定的客户随后通过发票付款。 因此,我在用户个人资料中添加了一个额外的字段,他可以在其中选择是/否。 该字段可以正常工作,并且可以正确保存。

取决于选择: 否=网上商店的默认行为,客户需要直接付款。 是=客户可以不付款就订购商品,稍后会收到发票。

也尝试了不同的付款方式,但每个人都可以使用,我只希望特定用户使用。

现在,我已经尝试基于functions.php中的该字段添加一个条件过滤器,如下所示:

if (esc_attr( get_the_author_meta( 'directbetalen', $user->ID ) ) == 'no') {
    add_filter('woocommerce_cart_needs_payment', '__return_false');
}

但这似乎不起作用吗?

我希望在该字段设置为no时跳过付款。 否则,一切正常,客户需要付款。

1 个答案:

答案 0 :(得分:1)

使用WordPress get_user_meta()功能,尝试以下操作:

add_filter( 'woocommerce_cart_needs_payment', 'disable_payment_for_specific_users' );
function show_specific_payment_method_for_specific_users( $needs_payment ) {
    if ( get_user_meta( get_current_user_id(), 'directbetalen', true ) === 'no' ) {
        $needs_payment = false;
    }
    return $needs_payment;
}

代码进入活动子主题(或活动主题)的functions.php文件中。应该可以。