Esta entrada contiene una recapitulación de funciones para acceder y obtener toda la información de un producto de WooCommerce.

Conocer estos métodos para acceder a los datos de los productos de WooCommerce pueden ahorrarte un tiempo a la hora de desarrollar y lo mismo que me ha ayudado tener esta lista en mente, espero que a ti también te pueda ayudar.

A los usuarios que trabajar o desarrollan funciones a medida en WooCommerce les será realmente útil, dado que aparte de enumerar cómo acceder al SKU de un producto, las unidades disponibles en stock, el precio su imagen destacada, etc. se presentan varios casos para poder acceder a toda la información de un producto desde la variable del carrito, ID del pedido o la variable post.

Teniendo acceso a la variable $product

Los hooks (do_action y apply_filters) usan argumentos adicionales que se pasan a la función. Si le permiten utilizar el objeto «$product», está en el negocio. Alternativamente, puede declarar el «producto $ global» dentro de su función.

En ambos casos, a continuación se explica cómo obtener toda la información del producto:

// Obtiene el ID
$product->get_id();
  
// Obtiene los datos generales
$product->get_type();
$product->get_name();
$product->get_slug();
$product->get_date_created();
$product->get_date_modified();
$product->get_status();
$product->get_featured();
$product->get_catalog_visibility();
$product->get_description();
$product->get_short_description();
$product->get_sku();
$product->get_menu_order();
$product->get_virtual();
get_permalink( $product->get_id() );
  
// Obtiene los precios
$product->get_price();
$product->get_regular_price();
$product->get_sale_price();
$product->get_date_on_sale_from();
$product->get_date_on_sale_to();
$product->get_total_sales();
  
// Obtiene los referido a tasas, envíos y stock
$product->get_tax_status();
$product->get_tax_class();
$product->get_manage_stock();
$product->get_stock_quantity();
$product->get_stock_status();
$product->get_backorders();
$product->get_sold_individually();
$product->get_purchase_note();
$product->get_shipping_class_id();
  
// Obtiene las dimensiones
$product->get_weight();
$product->get_length();
$product->get_width();
$product->get_height();
$product->get_dimensions();
  
// Obtiene los productos relacionados
$product->get_upsell_ids();
$product->get_cross_sell_ids();
$product->get_parent_id();
  
// Obtiene las variaciones y los atributos
$product->get_children(); // obtiene las variaciones
$product->get_attributes();
$product->get_default_attributes();
$product->get_attribute( 'attributeid' ); //obtiene el valor específico de un atributo
  
// Obtiene las texonomias
$product->get_categories();
$product->get_category_ids();
$product->get_tag_ids();
  
// Obtiene las descargas
$product->get_downloads();
$product->get_download_expiry();
$product->get_downloadable();
$product->get_download_limit();
  
// Obtiene las imágenes
$product->get_image_id();
$product->get_image();
$product->get_gallery_image_ids();
  
// Obtiene las valoraciones
$product->get_reviews_allowed();
$product->get_rating_counts();
$product->get_average_rating();
$product->get_review_count();

Accediendo a través de $product_id

Si se tiene acceso al ID del producto, se puede obtener el objeto del mismo y en consecuencia a todas sus propiedades.

Este ID suele ser accesible a travéss de los do_action o apply_filters.

// Obtiene el detalle de un producto por su ID
$product = wc_get_product( $product_id );
  
$product->get_type();
$product->get_name();
// etc.

Accediendo al pedido o al ID de pedido.

¿Cómo obtener la información de los productos de un pedido? Se deben recorrer todos los elementos presentes en el pedido y luego aplicar las reglas anteriores.

// Obtiene los productos a partir del ID del pedido 
$order = wc_get_order( $order_id );
$items = $order->get_items();
  
foreach ( $items as $item ) {
  
    $product = $item->get_product();
  
    $product->get_type();
    $product->get_name();
    // etc.
}

Accediendo al objeto carrito

En WooCommerce, como en todas las tiendas, los productos se pueden almacenar en nuestro carrito.

Por ello, debemos recorrer los productos del carrito y luego aplicar las reglas anteriores para acceder a sus propiedades.

// Obtiene el producto del objeto carrito
$cart = WC()->cart->get_cart();
  
foreach( $cart as $cart_item_key => $cart_item ){
  
    $product = $cart_item['data'];
  
    $product->get_type();
    $product->get_name();
    // etc.
}

Accediendo al objeto $post

Por último, en ciertos casos solo se puede tener acceso a la variable $post.

En este caso, con la funcion wc_get_product podemos acceder a los datos del producto.

// Obtiene el producto del objeto $post
$product = wc_get_product( $post );
  
// Now you have access to (see above)...
$product->get_type();
$product->get_name();
// etc.

Fuente: La entrada original la tienes en inglés en esta web

¡Valora este artículo y ayúdame a mejorar la calidad del blog, si no te ha servido, déjame un comentario para revisarlo!
(Votos: 1 Promedio: 5)