Sauter la navigation

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Ce sujet contient 2 réponses, a 2 voix.

Dernière mise à jour par jonathanB-73 Il y a 1 année et 10 mois.

Assisté par: Nicolas V..

Auteur Articles
février 15, 2023 à 11:05 pm #13044289

jonathanB-73

Bonjour, je souhaite traduire un snippet affichant les économies dans mon mini-panier.

La fonction PHP est la suivante:

if ( ! function_exists( 'shoptimizer_mini_cart_total_discounts' ) ) {
/**
*
*/
function shoptimizer_mini_cart_total_discounts() {
global $woocommerce;
$discount_total = 0;

foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) {

$_product = $values['data'];

if ($_product->is_on_sale()) {
$regular_price = $_product->get_regular_price();
$sale_price = $_product->get_sale_price();

if (empty($regular_price)){ //then this is a variable product
$available_variations = $_product->get_available_variations();
$variation_id=$available_variations[0]['variation_id'];
$variation= new WC_Product_Variation( $variation_id );
$regular_price = $variation ->regular_price;
$sale_price = $variation ->sale_price;
}

$discount = ceil(($regular_price - $sale_price) * $values['quantity'] );
$discount_total += $discount;
}

}
if ($discount_total > 0) { ?>
<p class="woocommerce-mini-cart__total total discounts-total">
<?php echo esc_html__( 'Vous économisez', 'shoptimizer' ); ?>
<span class="woocommerce-Price-amount amount">-<?php echo wc_price($discount_total + $woocommerce->cart->discount_cart); ?></span>
</p>

<style>
.widget_shopping_cart p.total.discounts-total {
color: green;
font-size: 13px;
margin-bottom: -1.2em;
order: 1;
}
.widget_shopping_cart p.total.discounts-total strong {
font-weight: normal;
}
.shoptimizer-mini-cart-wrap .widget_shopping_cart .discounts-total .amount {
margin: 0;
font-weight: normal;
color: green;
}
.shoptimizer-mini-cart-wrap .widget_shopping_cart .discounts-total .amount bdi {
color: green;
}
.widget_shopping_cart p.total {
order: 2;
}
.widget_shopping_cart p.buttons {
order: 3;
}
.shoptimizer-mini-cart-wrap .cart-drawer-below {
order: 4;
}
</style>
<?php }
}
}

add_action( 'woocommerce_widget_shopping_cart_before_buttons', 'shoptimizer_mini_cart_total_discounts', 10);

J'ai scanné le thème Shoptimizer dans "Localisation du thème et des plugins" mais la fonction n'apparaît pas dans la traduction de chaîne du thème.

Merci pour votre aide !

Mini_cart2.png
Mini_cart.png
février 16, 2023 à 12:42 pm #13048839

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Bienvenue sur le support de WPML.

Je pense que vous pouvez utiliser esc_html_e() au lieu de echo esc_html__()

<?php esc_html_e( 'Vous économisez', 'shoptimizer' ); ?>

Ensuite allez dans "WPML > Localisation du thème et des plugins", rescannez votre thème (attendez que le processus termine)
- Puis dans "WPML > Traduction de chaînes", cherchez la chaine "Vous économisez" ou sélectionnez le textdomain "shoptimizer" pour trouver le texte et le traduire.

N'oubliez pas de purger votre cache.

Nico