ceske-sluzby
ceske-sluzby copied to clipboard
Podmíněné zobrazení platebních možností
Nebylo by na škodu přidat do Českých služeb podmíněné zobrazení platebních možností v závislosti na typu dopravy. Kousek kódu přikládám, stačí jen přidat nějaké admin rozhraní.
function nt_relevantni_platebni_metody ($available_gateways) {
global $woocommerce;
$packages = $woocommerce->shipping->get_packages();
foreach ( $packages as $i => $package ) {
$chosen_method = isset( $woocommerce->session->chosen_shipping_methods[ $i ] ) ?
$woocommerce->session->chosen_shipping_methods[ $i ] : '';
// pokud je aktivováno doručení (id doručení)
if ('nt_shipping1' == $chosen_method) {
// zakážeme platební metodu
unset($available_gateways['bacs']);
}
// pokud je aktivováno doručení (id doručení)
else if ('nt_shipping2' == $chosen_method) {
// zakážeme platební metodu
unset($available_gateways['cod']);
break;
}
}
return $available_gateways;}
add_filter('woocommerce_available_payment_gateways','nt_relevantni_platebni_metody');
Je to z důvodu, pokud někdo využívá Table Rate Shipping, nebo nějaké další způsoby dopravy většinou nemá možnost jak omezit platby. Příklad z TRS: Třída - Česká pošta na dobírku (Musíme omezit jen platbu COD) Třída - Česká pošta platba na účet (Musíme omezit jen na platbu BACS)
Já sám využívám vlastní shipping methods, které by se také časem mohli přidat do České služby.
O tom jsem už také přemýšlel, protože to také občas používám, např. při osobním odběru je dost nesmyslná třeba dobírka, ale stačí platba v hotovosti a platba předem na účet. Ale jak udělat nějaké uživatelsky přívětivé rozhraní mě zatím nenapadlo :-)
- [x] Hodilo by se podporovat i nastavení
woocommerce_cod_enable_for_methods
. - [ ] Informace o aktivních metodách v nápovědě (aby bylo jasné, že se mají označením odebrat).
- [ ] Přepsat funkci
zkontrolovat_nastavenou_hodnotu()
:-( - [ ] Skrývat další nastavení u deaktivovaných platebních možností (JS).
- [ ] Zbavit se metody
get_available_payment_gateways()
z administrace: https://wordpress.org/support/topic/settings-have-dissapeared/
Dve pole vedle sebe. V prvním se vybere doručení a ve druhém např. checkboxy s výběrem platebních metod. Tak by se načetly všechny metody doručení a plateb, v řádcích pod sebou.
Mělo by být hotovo, chybí ještě pár drobností, ale funkčnost vyzkoušena. Doba pokročila, takže jsou podporovány shipping zones a nikoli dodatkové sazby starého flat rate.