我想在结帐页面中添加一小笔额外随机费用到总金额,因此我可以通过检查第二个小数点(随机介于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。 我该如何解决这个问题?