我正在使用WordPress& WooCommerce将我的订单作为全球支付解决方案处理。
我将付款后的客户重定向到自定义的感谢页面...我通过在" functions.php"中添加此代码来重定向它们。我当前活动主题的文件:
add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
global $wp;
if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
wp_redirect( 'http://example.com/success.php' );
exit;
}
}
我正在尝试添加" ORDERED"产品ID到URL。
所以我的代码现在就是这样:
add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
global $wp;
global $product;
if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
$id = $product->get_id();
wp_redirect( 'http://example.com/success.php?pid='.$id );
exit;
}
}
订单成功后重定向很好,但$id
的值为空。
任何帮助都将不胜感激。
谢谢!
答案 0 :(得分:2)
试试这段代码;
add_action( 'template_redirect', 'woo_custom_redirect_after_purchase' );
function woo_custom_redirect_after_purchase() {
global $wp;
global $product;
if ( is_checkout() && !empty( $wp->query_vars['order-received'] ) ) {
$order_id = isset( $wp->query_vars['order-received'] ) ? intval( $wp->query_vars['order-received'] ) : 0;
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item['product_id'];
}
wp_redirect( 'http://example.com/success.php?pid='.$product_id );
exit;
}
}