Como ya sabrás, ¿por que lo sabes verdad?, crear una oferta, o descuento, en WooCommerce es muy sencillo, solo tienes que poner el precio normal del producto y, a continuación, el precio rebajado.
Así, si quieres que un producto tenga un 15% de descuento, y vale 50 euros, el precio rebajado sería de … un momento … 50 por 0,15 es 7,5, menos los 50 euros iniciales, eso ¡42,5 euros!
Bueno, no es tan fácil, a veces, así que ¿y si añadimos a la caja de datos del producto un desplegable que nos ayude a aplicar rápidamente, y sobre todo sin tener que repasar las matemáticas de primaria, descuentos a los productos?
Que mucha inteligencia artificial pero ¿no iremos a desaprovechar la que ya tenemos disponible, ,no?
Vamos a ello porque es muy fácil, solo tienes que crear una función personalizada, que ya sabrás cómo copiar y pegar para que funcione, para mostrar el desplegable de los descuentos rápidos aplicables, tal que así…
/* Desplegable con porcentajes de descuento para productos */
add_action( 'woocommerce_product_options_pricing', 'ayudawp_porcentajes_descuento' );
function ayudawp_porcentajes_descuento() {
global $product_object;
woocommerce_wp_select(
array(
'id' => '_pc_discount',
'value' => get_post_meta( $product_object->get_id(), '_pc_discount', true ),
'label' => '% de descuento',
'options' => array(
'0' => '0',
'10' => '10',
'15' => '15',
'25' => '25',
'50' => '50',
),
)
);
}
add_action( 'save_post_product', 'ayudawp_guardar_porcentaje_descuento' );
function ayudawp_guardar_porcentaje_descuento( $product_id ) {
global $typenow;
if ( 'product' === $typenow ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( isset( $_POST['_pc_discount'] ) ) {
update_post_meta( $product_id, '_pc_discount', $_POST['_pc_discount'] );
}
}
}
add_filter( 'woocommerce_get_price_html', 'ayudawp_cambiar_precio_mostrado', 9999, 2 );
function ayudawp_cambiar_precio_mostrado( $price_html, $product ) {
if ( is_admin() ) return $price_html;
if ( '' === $product->get_price() ) return $price_html;
if ( get_post_meta( $product->get_id(), '_pc_discount', true ) && get_post_meta( $product->get_id(), '_pc_discount', true ) > 0 ) {
$orig_price = wc_get_price_to_display( $product );
$price_html = wc_format_sale_price( $orig_price, $orig_price * ( 100 - get_post_meta( $product->get_id(), '_pc_discount', true ) ) / 100 );
}
return $price_html;
}
add_action( 'woocommerce_before_calculate_totals', 'ayudawp_cambiar_precio_carrito', 9999 );
function ayudawp_cambiar_precio_carrito( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 ) return;
foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
if ( get_post_meta( $product->get_id(), '_pc_discount', true ) && get_post_meta( $product->get_id(), '_pc_discount', true ) > 0 ) {
$price = $product->get_price();
$cart_item['data']->set_price( $price * ( 100 - get_post_meta( $product->get_id(), '_pc_discount', true ) ) / 100 );
}
}
}
Ni te preocupes, mucho código pero es solo copiar y pegar, y mira que bien queda…
Y no es solo un desplegable mono, que se ve en el editor de productos, lo bueno es que te hace el cálculo del porcentaje de descuento y lo muestra en la página del producto, en el carrito, en todas partes.
¡Y la de cálculos matemáticos que te ahorras!
El artículo Cómo aplicar descuentos en porcentaje rápidamente a los productos sin tener que andar haciendo cálculos matemáticos y esas mierdas lo publicó Fernando Tellado previamente en Ayuda WordPress. Lo que ves aquí es una copia de dicho contenido :/

0 Commentaires