Cómo mostrar los productos comprados por el cliente en cualquier parte

    Creamos un shortcode que muestra los productos que ha comprado el cliente logueado en el pasado, en este ejemplo con [mis_productos_comprados].

    /* Mostrar los productos comprados por el usuario actual con sl shortcode [mis_productos_comprados].*/
    add_shortcode('mis_productos_comprados', 'products_bought_by_curr_user');
    
    function products_bought_by_curr_user() {
        $current_user = wp_get_current_user();
        if (0 == $current_user - > ID) return;
        $customer_orders = get_posts(array(
            'numberposts' => -1,
            'meta_key' => '_customer_user',
            'meta_value' => $current_user - > ID,
            'post_type' => wc_get_order_types(),
            'post_status' => array_keys(wc_get_is_paid_statuses()),
        ));
        if (!$customer_orders) return;
        $product_ids = array();
        foreach($customer_orders as $customer_order) {
            $order = wc_get_order($customer_order - > ID);
            $items = $order - > get_items();
            foreach($items as $item) {
                $product_id = $item - > get_product_id();
                $product_ids[] = $product_id;
            }
        }
        $product_ids = array_unique($product_ids);
        $product_ids_str = implode(",", $product_ids);
        return do_shortcode("[products ids='$product_ids_str']");
    }

    Herramientas relacionadas

    • WooCommerce

      El plugin para crear tiendas online por excelencia. Tanto de productos físicos como digitales. Es la base para prácticamente cualquier proyecto web que acepte pagos online.