WooCommerce ve výchozím stavu nemá možnost přidat poplatek za dobírku či jiné druhy platby. Musíš si prý kvůli tomu nainstalovat nějaký plugin, jde to ale i jednoduše pomocí kousku php kódu. V tomto návodu ti ukážu, jak na to oběma způsoby.
Přidání poplatku za platbu pomocí pluginu
Plugin, který pro toto používám nejčastěji se jmenuje WooCommerce Pay for Payment, jeho nastavení je docela snadné a umožňuje například:
- dynamický výpočet poplatku podle hodnoty nákupu
- poplatek může být nastaven v pevné částce a v procentech
- zahrnout, nebo vyloučit do výpočtu jiné poplatky, kupóny, dopravy a nebo daně
- zahrnutí daně do poplatku
- zakázání poplatku při dopravě zdarma
- překlad pomocí WPML
Nastavení pluginu WooCommerce Pay for Payment
Poplatek k platbám přidáte v jejich nastavení, takže v administrace jděte do WooCommerce > Nastavení > Pokladna > Vámi vybraná platební metoda.
V nastavení je prakticky vše jasné od pohledu, takže nebudu komentovat jednotlivé možnosti. Co bude ale vhodné zmínit je, že můžete například:
- kombinovat pevný poplatek s procentuální slevou
- zobrazit hodnotu poplatku v jeho názvu pomocí shortcodů:
- [FIXED_AMOUNT] – pevný poplatek
- [PERCENT_AMOUNT] – procentuální poplatek
- [CART_TOTAL] – celková hodnota nákupu
Poplatek za platbu pomocí kódu
Pokud nechcete váš e-shop zbytečně zatěžovat dalším pluginem a umíte vkládat php scripty do functions.php nebo do vlastního pluginu, tak můžete poplatky vložit jednoduše pomocí pár řádků kódu.
add_action( 'woocommerce_cart_calculate_fees', 'navodovna_poplatek_za_platbu' );
function navodovna_poplatek_za_platbu() {
$vybrana_platba = WC()->session->get( 'chosen_payment_method' );
if ( $vybrana_platba == 'cod' ) {
WC()->cart->add_fee( __('Poplatek za dobírku', 'language_domain'), 29, true, 'trida_dopravy'); // language_domain změňte podle vaší šablony nebo pluginu; číslo nahraďte vlastní hodnotou poplatku; true je pro započtení DPH k ceně, false pro cenu bez bez DPH; třída dopravy, pro kterou je poplatek určený, pokud nepoužíváte třídy dopravy, tak parametr vynechte
}
}
V podmínce můžete vidět cod, což je zkratka platby při doručení (Cash On Delivery) to nahradit libovolnou platební metodou. Základní jsou:
- bacs – platba bankovním převodem
- cheque – platba šekem
- cod – platba při doručení
- paypal – platba PayPalem
Pokud používáte i jiné platební metody a neznáte jejich zkratky, tak si je můžete jednoduše zjistit pomocí tohoto kousku kódu:
function navodovna_zobrazeni_platebnich_metod( $methods ) {
echo "<pre>";
print_r($methods);
echo "<pre>";
}
add_filter( 'woocommerce_payment_gateways', 'navodovna_zobrazeni_platebnich_metod' );
To bychom měli vše, pokud máte nějaké dotazy, tak se neváhejte zeptat pomocí komentářů pod příspěvkem.