woo tag pro plugin nulled manager deals wordpress-plugin woocommerce

wordpress plugin - tag - Woocommerce obtener variación del precio del producto



woocommerce-deals (5)

Estoy tratando de mostrar el precio de variación del producto dentro de la lista desplegable de variaciones. Estoy tratando de cambiar el comportamiento predeterminado donde el precio se muestra dentro de un div cuando elige una variación en el menú desplegable.

El problema es que no puedo encontrar donde esa div es obtener el precio de variación. Busqué en todo javascript pero no lo encontré

Si yo uso:

add_filter(''woocommerce_variation_option_name'' ,''add_price_to_dropdown''); function add_price_to_dropdown($name){ global $product; return $name.'' ''.$product->get_price_html(); }

Acabo de obtener el precio mínimo de variación para todas las opciones. Quiero obtener el precio por cada variación. ¿Cualquier pista?


Aquí está el código que estás buscando.

add_filter( ''woocommerce_variation_option_name'', ''display_price_in_variation_option_name'' ); function display_price_in_variation_option_name( $term ) { global $wpdb, $product; if ( empty( $term ) ) return $term; if ( empty( $product->id ) ) return $term; $id = $product->get_id(); $result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = ''$term''" ); $term_slug = ( !empty( $result ) ) ? $result[0] : $term; $query = "SELECT postmeta.post_id AS product_id FROM {$wpdb->prefix}postmeta AS postmeta LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id ) WHERE postmeta.meta_key LIKE ''attribute_%'' AND postmeta.meta_value = ''$term_slug'' AND products.post_parent = $id"; $variation_id = $wpdb->get_col( $query ); $parent = wp_get_post_parent_id( $variation_id[0] ); if ( $parent > 0 ) { $_product = new WC_Product_Variation( $variation_id[0] ); return $term . '' ('' . wp_kses( woocommerce_price( $_product->get_price() ), array() ) . '')''; } return $term; }

Espero que esto sea de utilidad.


Esto podría ayudarlos, chicos; Mientras busca cómo hacer lo mismo con la nueva versión de WC:

global $woocommerce; $product_variation = new WC_Product_Variation($_POST[''variation_id'']); $regular_price = $product_variation->regular_price;

Estoy usando ajax y pasando el ID de la variación con el método posterior.


He estado usando este código en Woocommerce para mostrar mis precios de variación y cuando actualicé a Woocommerce 2.0 noté que aparecían errores en la base de datos en wp-admin / error-log cada vez que editaba un producto. No estoy seguro de si los errores también ocurrían antes de la actualización a 2.0 porque no estaba usando Woocommerce por mucho tiempo antes de la actualización y no creo que haya revisado el registro de errores hasta hoy.

Los precios de variación se mostraron como se esperaba, pero el registro de errores se llenaría con el siguiente error cada vez que abría un producto para editar. Se produjo un error por cada variación asociada con el producto que estaba editando.

WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 8 for query SELECT postmeta.post_id AS product_id FROM wp_postmeta AS postmeta LEFT JOIN wp_posts AS products ON ( products.ID = postmeta.post_id ) WHERE postmeta.meta_key LIKE ''attribute_%'' AND postmeta.meta_value = ''12'' AND products.post_parent = made by include(''wp-admin/edit-form-advanced.php''), do_meta_boxes, call_user_func, woocommerce_product_data_box, do_action(''woocommerce_product_write_panels''), call_user_func_array, variable_product_type_options, include(''/plugins/woocommerce/admin/post-types/writepanels/variation-admin-html.php''), apply_filters(''woocommerce_variation_option_name''), call_user_func_array, display_price_in_variation_option_name

Cambié la siguiente línea en su código: AND products.post_parent = $ product-> id "; a este AND products.post_parent = ''$ product-> id''";

Y ahora, no más errores. El registro de errores se mantiene agradable y vacío.

Solo quería compartir en caso de que alguien más se encontrara con el problema.


Mi opinión sobre este tema, trabajando en el último Woocommerce: 3.2.1 (octubre de 2017) El precio se mostrará junto a la variación en el menú desplegable.

add_filter( ''woocommerce_variation_option_name'', ''display_price_in_variation_option_name'' ); function display_price_in_variation_option_name( $term ) { global $wpdb, $product; $result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = ''$term''" ); $term_slug = ( !empty( $result ) ) ? $result[0] : $term; $query = "SELECT postmeta.post_id AS product_id FROM {$wpdb->prefix}postmeta AS postmeta LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id ) WHERE postmeta.meta_key LIKE ''attribute_%'' AND postmeta.meta_value = ''$term_slug'' AND products.post_parent = $product->id"; $variation_id = $wpdb->get_col( $query ); $parent = wp_get_post_parent_id( $variation_id[0] ); if ( $parent > 0 ) { $_product = new WC_Product_Variation( $variation_id[0] ); $_currency = get_woocommerce_currency_symbol(); return $term . '' (''.$_currency.'' ''. $_product->get_price() . '')''; } return $term; }

Espero que esta ayude a alguien. Agrega esto a tus funciones de tema hijo.php


Tenía exactamente la misma pregunta que el OP, pero mi caso era un poco diferente. Aquí está mi solución que puede ayudar a otros que también llegan a esta página.

function get_product_variation_price($variation_id) { $product = new WC_Product_Variation($variation_id); return $product->product_custom_fields[''_price''][0]; }

ACTUALIZACIÓN para WooCommerce 2.2.10: el código anterior no funciona en la versión actual de WooCommerce. Este código, a continuación, funciona y vale la pena considerarlo ya que utiliza la API de WooCommerce, evita las consultas manuales de SQL y es bastante simple ...

/* * You can find the $variation_id in the Product page (go to Product Data > Variations, and it is shown with a preceeding "#" character) */ function get_product_variation_price($variation_id) { global $woocommerce; // Don''t forget this! $product = new WC_Product_Variation($variation_id); //return $product->product_custom_fields[''_price''][0]; // No longer works in new version of WooCommerce //return $product->get_price_html(); // Works. Use this if you want the formatted price return $product->get_price(); // Works. Use this if you want unformatted price }