下面的代码将客户在 WooCommerce 中购买后重定向到自定义页面。在此自定义页面中,用户可以购买额外的商品(通过添加新商品修改订单):
代码已编辑
您可以尝试以下操作,以避免收到订单时出现重定向问题:
add_action('woocommerce_checkout_order_created', 'set_wc_session_original_order_id');
function set_wc_session_original_order_id( $order ) {
WC()->session->set('original_order_id', $order->get_id());
}
add_action('template_redirect', 'custom_shop_order_process_redirects');
function custom_shop_order_process_redirects() {
if ( is_page('upsell-1') && isset($_GET['woocommerce_checkout_place_order'])) {
$order_id = WC()->session->get('original_order_id');
if ( $order_id > 0 ) {
$order = wc_get_order($order_id);
$order->add_product(wc_get_product('875'));
$order->calculate_totals(); // Already includes save() method
WC()->session->__unset('original_order_id'); // Remove session variable
wp_redirect( $order->get_checkout_order_received_url() );
exit;
}
} elseif ( is_wc_endpoint_url('order-received') && WC()->session->__isset('original_order_id') ) {
wp_redirect( home_url('/upsell-1') );
exit;
}
}
应该可以。