我想知道是否有用于在点击时更改Place Order Button行为的钩子。我正在尝试在下订单时更换/更换产品,因为产品选择(所有可用产品)也在结帐页面。
到目前为止,我一直试图操纵woocommerce_checkout_order_review
钩子&失败。
add_action('woocommerce_checkout_order_review', 'remove_woocommerce_product');
function remove_woocommerce_product(){
if (isset($_POST['woocommerce_checkout_place_order'])){
global $woocommerce;
$woocommerce->cart->empty_cart(); // Empty the cart
$selectedproduct = $_POST['selectedproductid']; // Get the selected product
WC()->cart->add_to_cart( $selectedproduct ); // Insert the selected product in the the cart
return esc_url( wc_get_checkout_url() ); // Redirect to Payment Gateway Page
}
}
在下订单时,不会触发上面的挂钩。也许我的代码有问题或者我怀疑是错误的钩子应用了。有什么想法吗?
答案 0 :(得分:0)
没关系......找到答案......
var url = 'www.google.com?param1=XDTY-300Hbc=¶m4=hello';
var query = url.substring(1);
var data = {};
query.split('&').filter(Boolean).forEach(function(pair) {
pair = pair.split('=');
data[decodeURIComponent(pair[0])] = decodeURIComponent(pair.slice(1).join('=')).replace(/\+/g, ' ');
});
document.body.innerHTML = JSON.stringify(data);
有关详细说明,请参阅Woocommerce Replace Product in Cart Upon Place Order in Checkout Page