WooCommerce Product Add-Ons (by WooCommerce)
- En el archivo wp-content\plugins\woocommerce-product-addons\includes\class-wc-product-addons-cart.php agrega el siguiente código:
if ($addon['price'] AND class_exists('WOOCS')) { global $WOOCS; $currrent = $WOOCS->current_currency; if ($currrent != $WOOCS->default_currency AND $WOOCS->is_multiple_allowed) { $currencies = $WOOCS->get_currencies(); $rate = $currencies[$currrent]['rate']; $addon['price'] = $addon['price'] * $rate; } }
- También en el mismo archivo agrega el código:
if (class_exists('WOOCS')) { global $WOOCS; $currrent = $WOOCS->current_currency; if ($currrent != $WOOCS->default_currency AND $WOOCS->is_multiple_allowed) { $currencies = $WOOCS->get_currencies(); $rate = $currencies[$currrent]['rate']; $addon_price = $addon_price * $rate; } }
- En el archivo wp-content\plugins\woocommerce-product-addons\includes\class-wc-product-addons-display.php agrega el siguiente código:
$suffix = ''; //woocs fix $woocs_is_multiple = 0; if (class_exists('WOOCS')) { global $WOOCS; $woocs_is_multiple = $WOOCS->is_multiple_allowed; }
- En el mismo archivo agrega también:
'woocs_is_multiple' => $woocs_is_multiple
- En el archivo wp-content\plugins\woocommerce-product-addons\assets\js\frontend/addons.js agrega el siguiente código:
var woocs_exists = true; try { if (woocs_current_currency) woocs_exists = true; } catch (e) { woocs_exists = false; } if (woocs_exists) { if (woocs_current_currency != undefined && woocs_current_currency['rate'] != undefined && woocommerce_addons_params.woocs_is_multiple == 0) { self.base_price = self.base_price * woocs_current_currency['rate']; } }
- También en el mismo archivo agrega el código:
var woocs_exists = true; try { if (woocs_current_currency) woocs_exists = true; } catch (e) { woocs_exists = false; } if (woocs_exists) { if (woocs_current_currency != undefined && woocs_current_currency['rate'] != undefined && addon_cost != undefined) { addon_data.cost = addon_data.cost * woocs_current_currency['rate']; addon_data.cost_raw = addon_data.cost_raw * woocs_current_currency['rate']; } }
- y en el archivo functions.php del tema actual de WordPress agrega el siguiente código:
add_filter('woocommerce_product_addons_option_price', function ($price_html, $option, $i, $type) { if ($price_html AND class_exists('WOOCS')) { global $WOOCS; $option_price = !empty($option['price']) ? $option['price'] : ''; $option_price_type = !empty($option['price_type']) ? $option['price_type'] : ''; $price_prefix = 0 < $option_price ? '+' : ''; $price_type = $option_price_type; $price_raw = apply_filters('woocommerce_product_addons_option_price_raw', $option_price, $option); $price_raw = $WOOCS->woocs_exchange_value($price_raw); $price_html = '(' . $price_prefix . wc_price(WC_Product_Addons_Helper::get_product_addon_price_for_display($price_raw)) . ')'; } return $price_html; }, 20, 4);
Esta modificación está dentro del archivo de otro plugin, por lo que una actualización del plugin la deshará. Anota el cambio y vuelve a aplicarlo después de cada actualización de ese plugin, o pide a sus autores que incluyan la corrección en su parte, que es la única versión que perdura. Si el cambio está dentro del propio FOX, dínoslo: una corrección que debe reaplicarse manualmente es un error de nuestra parte, no una solución.