ceske-sluzby icon indicating copy to clipboard operation
ceske-sluzby copied to clipboard

Podmíněné zobrazení platebních možností

Open novetrendy opened this issue 9 years ago • 3 comments

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.

novetrendy avatar Nov 24 '15 18:11 novetrendy

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/

pavelevap avatar Nov 24 '15 21:11 pavelevap

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.

novetrendy avatar Nov 29 '15 16:11 novetrendy

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.

pavelevap avatar May 11 '17 22:05 pavelevap