WooCommerce - показать заказную цену в мини-корзине - PullRequest
0 голосов
/ 24 апреля 2020

Я использую следующий код для определения цены c для продуктов WooCommerce:

function add_cart_item_data( $cart_item_data, $product_id, $variation_id ) {
    if( ! empty( $_POST['custom-total-price'] ) ) {
        $product = wc_get_product( $product_id );
        $price = $product->get_price();
        $cart_item_data['custom_price'] = $_POST['custom-total-price'];
    }
    return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10, 3 );

function before_calculate_totals( $cart_obj ) {
  if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
    return;
  }
  foreach( $cart_obj->get_cart() as $key=>$value ) {
    if( isset( $value['custom_price'] ) ) {
      $price = $value['custom_price'];
      $value['data']->set_price( ( $price ) );
    }
  }
}
add_action( 'woocommerce_before_calculate_totals', 'before_calculate_totals', 10, 1 );

Цена рассчитывается с помощью jQuery на передней панели и отправляется через форму ввода, когда продукт добавлен в корзину.

Это работает в том смысле, что общая сумма корзины обновляется, и пользовательская цена для отдельных товаров отображается на странице корзины. Тем не менее, он по-прежнему показывает цену 0 в мини-корзину. Любая идея, как я могу показать заказную цену в мини-корзине?

1 Ответ

0 голосов
/ 24 апреля 2020
add_filter( 'woocommerce_cart_item_price', 'woocommerce_cart_item_price_filter', 10, 3 );

function woocommerce_cart_item_price_filter( $price, $cart_item, $cart_item_key ) {
    /*
       calculate price
      */

    return $yourPrice;
}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...