Musilda.cz

Cena produktu při změně měny ve WPML

Dnešní snippet je zde především proto, abych jej našel, až jej budu někdy potřebovat. Což asi nebude tak často.

Snippet řeší získání aktuální ceny produktu ve WooCommerce, pokud máte na eshopu více měn a používáte WPML a jejich WooComerce Multilingual.

Nejprve musíme získat cenu produktu a k tomu využijeme get_price, metodu abstraktní třídy WC_Product. Já ve snippetu nemám k dispozici objekt produktu, takže jej musím vytvářet, ale pokud jej vy máte, tak jej znovu nevytvářejte.

$product = new WC_Product($product_id);
$price = $product->get_price();

To je poměrně jednoduchá věc a i získání ceny dle aktuální měny je jednoduché, jen se to špatně hledá. WPML má totiž filter „wcml_raw_price_amount“, který to za vás obstará.

$current_price = apply_filters( 'wcml_raw_price_amount', $price );

Cena, kterou dostanete, je však v číselném formátu, což mě v tomto případě vyhovovalo. Pokud by jste ji chtěli vypsat na webu, museli by jste ji ještě přeformátovat, o což se postará funkce wc_price()

echo wc_price($current_price);

A toť vše.

Exit mobile version