Изглеждаше ми, че добавянето на нова валута (като лв. например) би било лесно с WooCommerce, но не би. Не можах да намеря никакъв wp filter в документацията (филтър има, но се оказа трудно откриваем)
Edit: Пуснах плъгин, който добавя BGN лев като валута към WooCommerce. Може да го свалите от тук
Все пак успях да намеря 2 филтъра (явно недокументирани) за тази задача: ‘woocommerce_currencies’ и ‘woocommerce_currency_symbol’. Добавянето на BGN става по следния начин:
add_filter( 'woocommerce_currencies', 'add_bgn_currency' );
function add_bgn_currency( $currencies ) {
$currencies['BGN'] = __( 'Bulgarian lev', 'woocommerce' );
return $currencies;
}
add_filter('woocommerce_currency_symbol', 'add_bgn_currency_symbol', 10, 2);
function add_bgn_currency_symbol( $currency_symbol, $currency ) {
switch( $currency ) {
case 'BGN': $currency_symbol = 'лв.'; break;
}
return $currency_symbol;
}
След като добавите този код в списъка с валутите в админситрацията на WooCommerce ще ви се появи и заветния лев (най-отдолу):

Все пак един проблем продължава да стои отворен – позицията на символа за валута не може да се управлява от hook/filter. Единственото, което може да направите е да го зададете за целия сайт. (Дори локализиращите настройки с WPML не предоставят тази опция. И дори тази конфигурация е поставена на не-толкова-интуитивно място:
Продължавам да се чудя как да го направя с php only. В краен случай може да пробвам с good old JS.

Вашият коментар