对于状态已完成的WooCommerce订单上的特定产品,请从特定的自定义页面更改信息

时间:2019-05-23 11:46:07

标签: php wordpress woocommerce restriction user-data

我正在使用For specific products on WooCommerce orders with completed status, perform an action回答我以前的问题之一。

现在,如果用户从列表中购买了某个产品,并且该产品的订单已完成,我想显示一些特定的内容。否则,用户将在该页面上看到其他内容。 内容将位于该自定义页面的一个部分中。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

因此,您需要执行的操作是在满足条件时添加一些自定义用户元数据,例如:

add_action('woocommerce_order_status_completed', 'action_on_order_status_completed', 10, 2 );
function action_on_order_status_completed( $order_id, $order ){
    // Here below your product list
    $products_ids = array('11', '12', '13', '14', '15', '16');
    $found = false;

    // Loop through order items
    foreach ( $order->get_items() as $item ) {
        if ( in_array($item->product_id(), $products_ids) ) {
            $found = true;
            break;
        }
    }

    if ( $found ) {
        $user_id = $order->get_customer_id(); // Get the user ID
        // Add custom user meta data
        update_user_meta( $user_id, 'show_specific_content', '1' );
    }
}

现在您可以使用以下内容显示一些特定内容:

if( get_user_meta( get_current_user_id(), 'show_specific_content', true ) ) {
    // Display your custom content here
} else {
    // Display something else here
}