0

如何检索从 price.php 到 functions.php 的选择输入?

这是我的 price.php 代码,(hresults 取自数据库):

<select class="form-control" id="hotel" name="hotel">
    <?php

        foreach ( $hresults as $hresult ) { 
            echo "<option>" . $hresult->hotel . " + ₱" . $hresult->hotelprice . "</option>";
        }
    ?>
</select>

这是functions.php代码:

function add_custom_price( $cart_object ) {

    $pricesplit = explode("$",$_POST['hotel']);
    $hotelprice = (int) $pricesplit;
    foreach ( $cart_object->cart_contents as $key => $value ) { 

      $quantity = floatval( $value['quantity'] );
      $orgPrice = floatval( $value['data']->price );
      $value['data']->price = ( ( $orgPrice + $hotelprice ) * $quantity );

    }

}

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );

我的问题是,如何检索酒店选择输入并将其用于覆盖 woocommerce 价格的计算?

在此处输入图像描述

首先,用户选择酒店和机票,他们有自己的价格。然后,一旦用户将其添加到购物车,它就会覆盖价格。取决于所选的酒店和机场。

例如:

  • 机场:中国 - 400 美元
  • 酒店:丽笙 - 500 美元
  • TOTAL = ( 基本票价 + 机场 + 酒店) * 物品数量
4

1 回答 1

1

您的 price.php 中的标记不正确。选择字段中的“选项”缺少各自的值。这就是为什么您没有从选择字段中获取价格值的原因。price.php 中的代码应如下所示。

<select class="form-control" id="hotel" name="hotel">
    <?php
        foreach ( $hresults as $hresult ) { 
            echo '<option value="<?php echo($hresult->hotelprice); ?>">' . $hresult->hotel . ' + ₱' . $hresult->hotelprice . '</option>';
        }
    ?>
</select>

我希望这能解决你的问题。注意双引号 (") 和单引号 (') 的使用变化。

于 2016-04-11T12:18:33.130 回答