Woocommerce 连接从 price.php 到 functions.php

Woocommerce connecting From price.php to functions.php

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

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

<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' );

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

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

例如:

您 price.php 中的标记不正确。 select 字段中的 "options" 缺少各自的值。这就是为什么您没有从 select 字段中获取价格值的原因。 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>

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