【发布时间】:2019-12-29 13:54:59
【问题描述】:
我需要在我的网站上构建两个计划(付费)。如果用户购买黄金计划,它应该创建一个用户(角色)黄金并给他 20% 的旅行套餐折扣。如果用户购买白金 wp 应为该客户创建“白金”用户角色。现在我在网上找到了代码,但它不起作用:
add_action( 'woocommerce_order_status_completed',
'wpglorify_change_role_on_purchase' );
function wpglorify_change_role_on_purchase( $order_id ) {
// get order object and items
$order = new WC_Order( $order_id );
$items = $order->get_items();
$product_id = 85; // that's a specific product ID
foreach ( $items as $item ) {
if( $product_id == $item['product_id'] && $order->user_id ) {
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'customer' );
// Add role
$user->add_role( 'gold' );
}
}
$product_id = 86; // that's a specific product ID
foreach ( $items as $item ) {
if( $product_id == $item['product_id'] && $order->user_id ) {
$user = new WP_User( $order->user_id );
// Remove role
$user->remove_role( 'customer' );
// Add role
$user->add_role( 'platinum' );
}
}
现在我已将此代码放在当前活动(子)主题的 function.php 文件中,但是当我对其进行测试并购买产品时,wordpress 会继续创建“客户”用户。 我的代码有问题吗?
【问题讨论】:
标签: php wordpress woocommerce product user-roles