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.
Índice de contenidos
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
Buenos dias,
Una pregunta, como puedo conseguir el valor de la variacion seleccionada en Woocoommerce?. Necesito sacar el color de la variacion seleccionada para colocarla al lado de la descripcion y cuando se selecciona otro color, este campo cambia por el nuevo seleccionado.
Hola Gustavo,
Si he comprendido bien, cuando marcas una variación seleccionada, ese campo quedará registrado como checked o similar, por lo que por JavaScript podrias obtener la descripción de esa variación.
Por ejemplo, en esta tienda demo del tema de Avada –> https://avada.theme-fusion.com/winery/product/mixed-case-of-wine/ Cuando marcas un producto, en el html se queda como data-checked=»true», entonces sabiendo esto podrías coger el valor del title para pintarlo donde necesites.
Espero que pueda servirte…
¡Un saludo!