Woocommerce连接从price.php到functions.php

时间:2016-04-08 09:06:20

标签: wordpress woocommerce override cart price

如何从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价格?

enter image description here

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

例如:

  • 机场:中国 - $ 400
  • 酒店:Radisson - $ 500
  • TOTAL =(基本票价+机场+酒店)*商品数量

1 个答案:

答案 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;)的更改。