Woocommerce:如何添加随机费?

时间:2017-09-11 09:08:19

标签: wordpress

为什么我必须这样做?

我想在结帐页面中添加一小笔额外随机费用到总金额,因此我可以通过检查第二个小数点(随机介于0.01 - 0.09之间)识别通过银行汇款的客户。

这是示例

总金额为750.当结账页面加载时,它会添加随机小额费用,因此总金额将为750.01或750.04

到目前为止我做了什么?

我激活这个插件。

" WooCommerce通过 hemsingh1 向支付网关(标准)" 收取额外费用。

有一个" calculate_totals()" 功能,我已添加一个修正金额来测试它。当我运行页面时,结帐总数是正确的。

问题是当我用" rand(1,9)/ 100" 添加随机数时。它随机收取这笔费用3次。加载结帐页面时首先随机(页面模糊,无法选择任何内容)。结帐页面完成加载后第二个随机,用户可以选择付款方式。第三次在感谢页面。用户将看到3次不同的额外费用。但我希望用户看到相同的随机值。

然后我尝试在加载结帐页面之前创建一个随机数。 这个过程是

1)我在" woocommerce_cart_calculate_fees" 中使用" add_filter" 来选择"随机&# 34; 功能

2)在"随机" 功能中,我随机编号0.01-0.09,调用函数" calculate_total" 然后使用" do_action" $ random_number 发送到" calculate_total"

3)在" calculate_total" 中,添加新参数,即 $ random_number 。在其中我通过 $ random_number 添加 $ t1 (此插件的额外费用)。

class WC_PaymentGateway_Add_extra_std_Charges{
    public function __construct(){
        ....
        add_filter( 'woocommerce_cart_calculate_fees' , 'random' );

}


function random() {
    $random_number = rand(1,9)/100;
    add_action( 'woocommerce_cart_calculate_fees', array( $this,'calculate_totals' ), 10, 2 );
    do_action('woocommerce_cart_calculate_fees', $random_number);
}  


public function calculate_totals( $totals, $random_number ) {
    ....
    $woocommerce->cart->add_fee(__($t6.$t5),**($t1 + $random_number)**,$ta1);
}

这种方法仍然不起作用。额外费用始终为0.00。 我该如何解决这个问题?

0 个答案:

没有答案