FOX - Currency Switcher for WooCommerce

WPC Composite Products for WooCommerce By WPClever

Enlace del plugin: https://wordpress.org/plugins/wpc-composite-products/ Se envía la señal: https://wordpress.org/support/topic/compatibility-with-fox-currency-switcher-professional-for-woocommerce-2/
  • en el archivo wp-content\plugins\wpc-composite-products\includes\class-wooco.php añadir el siguiente código (2 lugares):
    if (class_exists('WOOCS') AND $cart_item['wooco_price'] > 0) {
        global $WOOCS;
        $cart_item['wooco_price'] = $WOOCS->woocs_exchange_value(floatval($cart_item['wooco_price']));
    }
    
  • en el archivo functions.php del tema actual de WordPress añadir el siguiente código:
    add_filter('wooco_product_price', function ($price_display, $product, $qty, $price) {
        if (class_exists('WOOCS') AND $price_display > 0) {
            global $WOOCS;
            $price_display = $WOOCS->woocs_exchange_value(floatval($price_display));
        }
        return $price_display;
    }, 10, 4);
    
    add_filter('wooco_product_regular_price', function ($org_price, $product, $qty, $price) {
        if (class_exists('WOOCS') AND $org_price > 0) {
            global $WOOCS;
            $org_price = $WOOCS->woocs_exchange_value(floatval($org_price));
        }
        return $org_price;
    }, 10, 4);
    
    add_filter('wooco_product_new_price', function ($new_price, $product, $qty, $price) {
        if (class_exists('WOOCS') AND $new_price > 0) {
            global $WOOCS;
            $new_price = $WOOCS->woocs_exchange_value(floatval($new_price));
        }
        return $new_price;
    }, 10, 4);
    
    add_filter('wooco_product_price_html', function ($price_html, $product, $qty, $price) {
        if (class_exists('WOOCS') AND $price > 0) {
            global $WOOCS;
            $price_html = wc_price($WOOCS->woocs_exchange_value(floatval($price)));
            //$price_html = wc_format_sale_price( wc_get_price_to_display( $product, [ ‘price’ => $price_ori ] ), $price_display);
        }
        return $price_html;
    }, 10, 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 lado, que es la única versión que perdura. Si el cambio está dentro del propio FOX, dínoslo: una corrección que debe volver a aplicarse manualmente es un error por nuestra parte, no una solución.