С无法正确处理表格形式

问题描述 投票:0回答:1

在我的插件中,我试图更改订单数据($ total particullary),具体取决于单击带有结帐页面form>元素中具有自定义值和名称属性的重复按钮“下订单”。它具有checkout页面的url作为form-checkout.php文件中的action属性的值。所以我不知道在哪里处理。在哪里可以获得这些$ _POST变量?通过插件实现它是真的吗?怎么样?我会为每条建议疯狂地高兴。WordPress版本-5.3.2。 Woocommerce版本-3.5

<?php 
/**
 * Plugin Name: 2buttonsplug
 * Description: Description
 * Plugin URI: http://#
 * Author: Author
 * Author URI: http://#
 */

/*
add_action('admin_post_get_for_price_2','mega_function');
add_action('admin_post_get_for_price_3','mega_function');
function mega_function() {
    global $gj;
    $gj=$_POST['get_for_price_2'];

}
*/
add_action( 'woocommerce_checkout_after_order_review', 'second_place_order_button', 5 );
function second_place_order_button() {
    $order_button_text = 'get_for_price_2';

    echo '<button type="submit" class="button alt" name="get_lucky_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button>';
    $order_button_text = 'get_for_price_3';
    echo '<button type="submit" class="button alt" name="get_extra_lucky_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button>';

}

//woocommerce_checkout_create_order

add_action( 'woocommerce_checkout_create_order', 'change_total_on_checking', 20, 1 );

function change_total_on_checking( $order ) {
    $total = $order->get_total();
    $new_total = $total * 1.12;
    $order->set_total( $new_total );

}


?>

和form-checkout.php第32行:

<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( wc_get_checkout_url() ); ?>" enctype="multipart/form-data">
wordpress post woocommerce hook
1个回答
0
投票
我尚无法发表评论。

根据我的经验,结帐是通过对服务器的Ajax调用来处理的。现在,我不相信您可以更改总金额,因为不会重新创建订单。如果您查看官方店面主题,则可以看到加载动画。这意味着该订单已经过验证,但已经创建,因此将不会调用woocommerce_checkout_create_order。您可以实现custom payment gateway

© www.soinside.com 2019 - 2024. All rights reserved.