Wordpress Woocommerce:如何添加随机费用? 我为什么要这样做?

Wordpress Woocommerce:如何添加随机费用? 我为什么要这样做?,wordpress,Wordpress,我想在结帐页面的总金额中添加少量额外的随机费用,这样我可以通过检查第二个小数点(0.01-0.09之间的随机数)来识别通过银行转账的客户 这就是示例 总数是750。当签出页面加载时,它将添加随机小费用,因此总数将为750.01或750.04 到目前为止我做了什么? 我激活这个插件 “WooCommerce支付网关额外费用(标准)”作者:hemsingh1 class WC_PaymentGateway_Add_extra_std_Charges{ public function __co

我想在结帐页面的总金额中添加少量额外的随机费用,这样我可以通过检查第二个小数点(0.01-0.09之间的随机数)来识别通过银行转账的客户

这就是示例

总数是750。当签出页面加载时,它将添加随机小费用,因此总数将为750.01或750.04

到目前为止我做了什么? 我激活这个插件

“WooCommerce支付网关额外费用(标准)”作者:hemsingh1

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);
}
有一个“calculate_totals()”函数,我添加了一个固定数量来测试它。当我运行页面时,签出总数是正确的

问题是当我将随机数加上rand(1,9)/100时。这项费用随机收取3次。第一次随机加载签出页面(页面模糊,无法选择任何内容)。第二,当结账页面完成加载,用户可以选择付款方式时进行随机选择。第三次在谢谢页面。用户将看到3次不同的额外费用。但我希望用户看到相同的随机值

然后,在加载结账页面之前,我尝试生成一个随机数。 过程是

1) 我使用“woocommerce\u cart\u calculate\u fees”中的“add\u filter”来选择“random”函数

2) 在“random”函数中,我使用random number 0.01-0.09,调用函数“calculate\u total”
,然后使用“do\u action”$random\u number发送到“calculate\u total”

3) 在“计算总数”中,我添加了新的参数,即$random\u number。在它里面,我通过$random\u 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美元。 我怎样才能解决这个问题