如果选中单选按钮,则将Woocommerce存款值相乘

时间:2017-01-13 23:53:32

标签: php wordpress woocommerce

我为学校建立了Woocommerce解决方案。他们为每门课程提供了各种各样的选项,因此使用一些插件来帮助他们实现目标。

对于每门课程,您可以选择持续时间(2 weeks4 weeks)以及其他一些选项,因此您可以选择一些单选按钮。这些是由插件管理的。

您还必须选择是否要支付全价或支付存款价值。这是由另一个插件(Woothemes存款)管理。

Here is a screenshot of the product options

Woothemes存款只提供为存款设定单一固定价格的选项,就是这样。但学校设定的存款价值是4 weeks期限选项价值的两倍。

因此,如果选择4周单选按钮,我的目标是将存款值乘以2。

我查看了Woothemes Deposits文件,发现了这个功能,据说可以管理添加到购物车的事件:

public function add_cart_item( $cart_item ) {
    if ( ! empty( $cart_item['is_deposit'] ) ) {

        $deposit_amount = WC_Deposits_Product_Manager::get_deposit_amount( $cart_item['data'], ! empty( $cart_item['payment_plan'] ) ? $cart_item['payment_plan'] : 0 );

        if ( false !== $deposit_amount ) {

            $cart_item['deposit_amount'] = $deposit_amount;

            // [...] other stuff that doesn't matter here

            $cart_item['data']->set_price( $cart_item['deposit_amount'] );

        }
    }

    return $cart_item;
}

所以我尝试在return $cart_item;之前添加此内容:

if ( $_POST['tmcp_radio_0'] == "4 weeks_1") {
      $cart_item['data']->set_price( $cart_item['price'] * 2 );
    }

tmcp_radio_0是单选按钮名称,4 weeks_1是目标单选按钮的值...

但没有成功。我尝试在此函数的其他一些行中添加此变体,有时我得到所有存款(即使是2周的存款)乘以2,有时我得到500错误。

有光吗?我想在正确的地方做吗?我知道我不应该修改插件文件,但我只是想了解发生了什么,然后尝试提出一个更优雅的解决方案。

谢谢!

0 个答案:

没有答案