如何从price.php中检索select.php的选择输入?
这是我的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' );
我的问题是,如何检索酒店选择输入并将其用于计算以覆盖woocommerce价格?
首先,用户选择酒店和机票,这是他们身边的价格。然后,一旦用户将其添加到购物车,它就会覆盖价格。取决于所选的酒店和机场。
例如:
答案 0 :(得分:1)
price.php中的标记不正确。 &#34;选项&#34;在选择字段中缺少各自的值。这就是为什么你没有从选择字段中获得价格值。 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>
我希望这能解决你的问题。请注意使用双引号(&#34;)和单引号(&#39;)的更改。