Dnes jsem narazil na poměrně zvláštní problém a chci se s vámi podělit o jeho řešení. WooCommerce neustále zobrazovala v košíku a pokladně nulovou hodnotu DPH.
Přestože jsem nastavení několikrát kontroloval a hledal chybu, neustále ze zobrazovalo „cena obsahuje 0 Kč DPH“.
Vypadalo to tak, že DPH prostě není vůbec počítáno a nezapisovalo se ani do objednávek. Kde tedy hledat chybu, když nastaví bylo v pořádku, na testovacím webu vše fungovalo a DPH se nezobrazilo ani při přepnutí na defaultní šablonu a deaktivaci pluginů? Downgrade nepomohl, přeinstalání WooCommerce také ne.
Nebudu vás napínat, v databázi chyběla jedna tabulka. Nedokáži říci proč, ale prostě se nevytvořila woocommerce_tax_rate_locations.
I když se u nás lokace pro DPH nepoužívají a tabulka zůstane prázdná, tak její neexistence naruší proces výpočtu a bude se vám všude zobrazovat nulové DPH.
Pro vyřešní stačí jít do phpMyAdmin, zvolit SQL a vytvořit samotnou tabulku, přidat klíče a autoincrement. Asi by se to dalo napsat do jednoho příkazu, ale po pěti hodinách jsem byl rád, že jsem našel řešení.
Kód:
CREATE TABLE IF NOT EXISTS `wp_woocommerce_tax_rate_locations` (
`location_id` bigint(20) NOT NULL,
`location_code` varchar(255) NOT NULL,
`tax_rate_id` bigint(20) NOT NULL,
`location_type` varchar(40) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
ALTER TABLE `wp_woocommerce_tax_rate_locations`
ADD PRIMARY KEY (`location_id`), ADD KEY `tax_rate_id` (`tax_rate_id`), ADD KEY `location_type` (`location_type`), ADD KEY `location_type_code` (`location_type`,`location_code`);
ALTER TABLE `wp_woocommerce_tax_rate_locations`
MODIFY `location_id` bigint(20) NOT NULL AUTO_INCREMENT;
Název tabulky se může změnit podle toho, jaký máte zvolená prefix, v tom případě musíte nahradit „wp_“ na začátku jména tabluky.