在主题的functions.php文件中获取订购的产品详细信息(ID,数量) - WooCommerce

时间:2018-05-19 08:13:19

标签: php wordpress woocommerce

我正在使用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的值为空。

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 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;
    }
}