Woocommerce:如何为首单添加额外费用
Woocommerce: How to Add extra fee for First Order
仅当这是客户的第一笔订单时,我才尝试在总额 cart/order 中添加额外费用。
网上找了很多,还是没有找到具体的解决办法。
请某人suggest/guide 执行此操作的最佳解决方案。
谢谢
您使用购物车 class' add_fee()
方法添加费用。没有内置的方法可以知道客户下了多少订单,因此我们可以尝试通过名为 _number_order
.
的用户元字段进行跟踪
function so_27969258_add_cart_fee() {
$orders = intval( get_user_meta( get_current_user_id(), '_number_orders', true ) );
if( $orders < 1 ){
WC()->cart->add_fee( __( 'First time fee', 'your-plugin'), 100 );
}
}
add_action( 'woocommerce_before_calculate_totals', 'so_27969258_add_cart_fee' );
如果我们不实际更新 _number_orders
密钥,那么它将始终是 null/empty/zero,用户将始终支付首次费用。因此我们可以尝试在用户完成付款时更新该密钥。
function so_27969258_track_orders_per_customer(){
$orders = intval( get_user_meta( get_current_user_id(), '_number_orders', true ) );
$orders = $orders + 1;
update_user_meta( get_current_user_id(), '_number_orders', $orders );
}
add_action( 'woocommerce_payment_complete', 'so_27969258_track_orders_per_customer' );
这完全未经测试,因此使用风险自负。此外,您可能想考虑在 refunds/cancellations 等情况下更改订单总数,但这似乎是一般要点。
仅当这是客户的第一笔订单时,我才尝试在总额 cart/order 中添加额外费用。
网上找了很多,还是没有找到具体的解决办法。
请某人suggest/guide 执行此操作的最佳解决方案。
谢谢
您使用购物车 class' add_fee()
方法添加费用。没有内置的方法可以知道客户下了多少订单,因此我们可以尝试通过名为 _number_order
.
function so_27969258_add_cart_fee() {
$orders = intval( get_user_meta( get_current_user_id(), '_number_orders', true ) );
if( $orders < 1 ){
WC()->cart->add_fee( __( 'First time fee', 'your-plugin'), 100 );
}
}
add_action( 'woocommerce_before_calculate_totals', 'so_27969258_add_cart_fee' );
如果我们不实际更新 _number_orders
密钥,那么它将始终是 null/empty/zero,用户将始终支付首次费用。因此我们可以尝试在用户完成付款时更新该密钥。
function so_27969258_track_orders_per_customer(){
$orders = intval( get_user_meta( get_current_user_id(), '_number_orders', true ) );
$orders = $orders + 1;
update_user_meta( get_current_user_id(), '_number_orders', $orders );
}
add_action( 'woocommerce_payment_complete', 'so_27969258_track_orders_per_customer' );
这完全未经测试,因此使用风险自负。此外,您可能想考虑在 refunds/cancellations 等情况下更改订单总数,但这似乎是一般要点。