FOX - Currency Switcher for WooCommerce

Fancy Product Designer

Lien du plugin : https://codecanyon.net/item/fancy-product-designer-woocommercewordpress/6318393 Dans le fichier \wp-content\plugins\fancy-product-designer\inc\class-frontend.php ajoutez le code suivant :
var price = fancyProductDesigner.calculatePrice();
if (woocs_current_currency != 'undefined' && woocs_current_currency['rate'] != 'undefined')
    {
     var dec = 1;
     if (woocs_current_currency['decimals']) {
        dec = Math.pow(10, woocs_current_currency['decimals']);
    }
    price = Math.round(price * woocs_current_currency['rate'] * dec) / dec;

}
Ajoutez le code suivant dans le même fichier :
if (class_exists('WOOCS')) {
    global $WOOCS;
    $currencies = $WOOCS->get_currencies();
    $cur_cur = $WOOCS->current_currency;
    if ($cur_cur != $WOOCS->default_currency) {
        $sign = $currencies[$cur_cur]['symbol'];
        switch ($currencies[$cur_cur]['position']) {
            case 'right':
            case 'right_space':
                $price_format = "%d" . $sign;
                break;
            case 'left':
            case 'left_space':
            default:
                $price_format = $sign . "%d";
        }
    }
}

Dans le fichier \wp-content\plugins\fancy-product-designer\inc\api\class-product-settings.php ajoutez le code suivant :
if ($parameter == 'price') {
    if (class_exists('WOOCS')) {
        global $WOOCS;
        if ($WOOCS->is_multiple_allowed) {
            $value = $WOOCS->woocs_exchange_value(floatval($value));
        }
    }
}

Dans le fichier \wp-content\plugins\fancy-product-designer\inc\api\class-product-settings.php ajoutez le code suivant :
if ($parameter == 'price') {
    if (class_exists('WOOCS')) {
        global $WOOCS;
        if ($WOOCS->is_multiple_allowed) {
            $value = $WOOCS->woocs_exchange_value(floatval($value));
        }
    }
}

Dans le fichier wp-content\plugins\fancy-product-designer\woo\class-wc-cart.php ajoutez le code suivant :
if (class_exists('WOOCS')) {
    global $WOOCS;
    if ($WOOCS->is_multiple_allowed) {
        $currrent = $WOOCS->current_currency;
        if ($currrent != $WOOCS->default_currency) {
            $currencies = $WOOCS->get_currencies();
            $rate = $currencies[$currrent]['rate'];
            $_POST['fpd_product_price'] = $_POST['fpd_product_price'] / $rate;
        }
    }
}
Ajoutez également le code suivant dans le même fichier :
$tmp_price = $product->get_price();
if (class_exists('WOOCS')) {
    global $WOOCS;
    if ($WOOCS->is_multiple_allowed) {
        $currrent = $WOOCS->current_currency;
        if ($currrent != $WOOCS->default_currency) {
            $currencies = $WOOCS->get_currencies();
            $rate = $currencies[$currrent]['rate'];
            $tmp_price = $tmp_price / $rate;
        }
    }
}
$final_price = $final_price < $tmp_price ? $tmp_price : $final_price;
Cette modification se trouve dans le fichier d'un autre plugin, donc une mise à jour du plugin l'annulera. Notez le changement et réappliquez-le après chaque mise à jour de ce plugin — ou demandez à ses auteurs d'inclure le correctif de leur côté, qui est la seule version qui persiste. Si la modification se trouve dans FOX lui-même, dites-nous : un correctif qui doit être réappliqué manuellement est un bug de notre côté, pas une solution.