FOX - Currency Switcher for WooCommerce

WooCommerce Product Add-Ons (by WooCommerce)

Plugin-URL: https://woocommerce.com/products/product-add-ons/
  • In die Datei wp-content\plugins\woocommerce-product-addons\includes\class-wc-product-addons-cart.php fügen Sie folgenden Code hinzu:
    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;
        }
    }
    
  • Fügen Sie in derselben Datei ebenfalls folgenden Code hinzu:
    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;
        }
    }
    
  • In die Datei wp-content\plugins\woocommerce-product-addons\includes\class-wc-product-addons-display.php fügen Sie folgenden Code hinzu:
    $suffix = ''; //woocs fix
    $woocs_is_multiple = 0;
    if (class_exists('WOOCS')) {
        global $WOOCS;
        $woocs_is_multiple = $WOOCS->is_multiple_allowed;
    }
    
  • Fügen Sie in derselben Datei ebenfalls folgenden Code hinzu:
    'woocs_is_multiple' => $woocs_is_multiple
  • In die Datei wp-content\plugins\woocommerce-product-addons\assets\js\frontend/addons.js fügen Sie folgenden Code hinzu:
    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'];
        }
    }
    
  • Fügen Sie in derselben Datei ebenfalls folgenden Code hinzu:
    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'];
        }
    }
    
  • und fügen Sie in die Datei functions.php des aktuellen WordPress-Themes folgenden Code hinzu:
    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);
    
     
Diese Bearbeitung befindet sich in der Datei eines anderen Plugins, daher wird ein Plugin-Update sie rückgängig machen. Notieren Sie die Änderung und wenden Sie sie nach jedem Update des Plugins erneut an – oder bitten Sie die Autoren, den Fix auf ihrer Seite einzubauen, was die einzige Version ist, die bestehen bleibt. Wenn die Änderung im FOX selbst vorgenommen wird, teilen Sie uns mit: Ein Fix, der von Hand erneut angewendet werden muss, ist ein Fehler auf unserer Seite, keine Lösung.