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.

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *