Я хочу добиться этого:
Когда аукцион заканчивается, пользователь нажимает «Оплатить сейчас», товар добавляется в корзину пользователя, но окончательная цена (например, $ 50) увеличивается на 10%.
Цель состоит в том, чтобы увеличить окончательную цену аукциона на 10%, победитель должен заплатить на 10% больше.
Я пытался увеличить с помощью «Динамического ценообразования и скидок WooCommerce от RightPress», ориентируясь на продукты с метаданными «_auction_start_price» - не повезло.
Также я попробовал с этим кодом:
function before_calculate_totals( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
return;
}
// Iterate through each cart item
foreach ( $cart->get_cart() as $cart_item ) {
$product_id = $cart_item['product_id'];
$product_price = $cart_item['data']->get_price(); // get the price
$meta = get_post_meta($product_id, '_auction_start_price', true);
if ($meta > 0) {
$new_price = $product_price+($product_price*0.1); // add 10% to price
} else {
$new_price = $product_price+100;
}
$cart_item['data']->set_price(floatval($new_price)); // set new price
}
}
add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 );
Этот код работает с обычными простыми продуктами, но не с предметами аукциона.
У меня Woocommerce 3.0 +