Отобразить пользовательскую цену для продукта вариации в корзине / оформить заказ - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть заказной продукт (коврик), цена которого определяется выбранной пользователем длиной и шириной.

Я могу легко справиться с изменением цены на странице продукта с помощью jQuery.

Но я изо всех сил пытаюсь найти что-то, что примет выбор пользователя, и использую их для расчета пользовательской цены на корзину / оформление заказа.

Я сохраняю введенные пользователем данные в $ cart_item_data, вот так ....

function smcrp_add_custom_rug_fields_to_cart_item( $cart_item_data, $product_id, $variation_id ) {
    $length_text = filter_input( INPUT_POST, 'smcrp-length' );
    $width_text = filter_input( INPUT_POST, 'smcrp-width' );
    $unit_text = filter_input( INPUT_POST, 'smcrp-unit' );

    if ( empty( $length_text ) && empty( $width_text ) && empty( $unit_text ) ) {
        return $cart_item_data;
    }

    $cart_item_data['smcrp-length'] = $length_text;
    $cart_item_data['smcrp-width'] = $width_text;
    $cart_item_data['smcrp-unit'] = $unit_text;

    return $cart_item_data;
}

Но я не уверен, как изменить цену только при оформлении заказа.

Я попытался следовать некоторым советам в другой теме и использовать:

function smcrp_custom_rug_price( $price, $product ) {
  wc_delete_product_transients($product->get_id());

  if ( strpos( $product->get_data()["name"],  "- Custom" ) === FALSE )
    return $price;

  return 180; 
}

Но это возвращает статическую цену, и я не могу получить доступ к cart_item_data изнутри этой функции.

И я не могу заставить ее отображаться только в корзине / оформлении заказа.

Любой совет?

Спасибо, Джек

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