Zasilkovna / WooCommerce

This is the official plugin, that allows you to choose pickup points of Packeta and its external carriers in all of Europe, or utilize address delivery to 25 countries in the European Union, straight from the cart in your e-shop. Furthermore, you can also submit all your orders to Packeta with just one click.
https://wordpress.org/plugins/packeta/
GNU General Public License v3.0
20 stars 10 forks source link

Manuální uložení vybrané zásilkovny #365

Open mlykotom opened 1 year ago

mlykotom commented 1 year ago

Máme košík, který se skládá z více kroků a rád bych si při dokončení výběru dopravy uložil informace o vybrané zásilkovně.

Jak jsem tak koukal do zdrojáků, tak zřejmě bych potřeboval zavolat Checkout.updateOrderMeta funkci. Nicméně, v tomhle případě nemůžu instanciovat tuto třídu.

Co by byl nejvhodnější způsob jak pokračovat? Případně bylo by možné přidat možnost zavolat tuto metodu pomocí hooku, nebo statického callu?

Děkuji

MatyasKoval commented 1 year ago

Dobrý den @mlykotom , děkuji za Váš dotaz.

Sám přímo programátor nejsem, nicméně jsem Váš problém prokonzultoval s kolegy z vývoje pluginu. Vzhledem k tomu, že nevíme jakým způsobem konkrétně máte vícekrokový košík implementovaný, tak kolegové upozorňují, že by mohlo dojít k porušení logiky z public/checkout.js, která počítá se všemi údaji, listenery atd. na jedné stránce.

Nicméně funkce, kterou zmiňujete je správná pro účel propsání údajů, ale nemělo by být nutné jí volat přímo - je navázána k hooku WooCommerce, který se při standartním checkout procesu volá.

Problém na který narážíte by mohl být způsoben nevytisknutými hidden fieldy objednávky, do kterých se její údaje v průběhu ukládají. Vytisknutí hidden fieldů lze provést například akcí woocommerce_review_order_before_submit.

S pozdravem, Matyáš Kovaľ - Packeta E-Commerce Support

mlykotom commented 1 year ago

Principielně máme jednu php stranu s checkoutem, která je ale rozdělena javascriptem na více kroků.

Pokud užívatel projde checkoutem "vez přerušení" (např. reload stránky) tak vše proběhne v pořádku.

My bychom si ale chtěli uložit vyplněná data, aby uživatel náhodou nepřišel o vyplněná data mezi jednotlivými kroky.

V takovém případě při reloadu stránky se v podstatě výplní ty hidden inputy a vše bude fungovat v pořádku.

Problém je jenom v tom, že bychom chtěli pokud je to možné tu zmiňovanou funkci zavolat manuálně když potřebujeme ( třeba přes hook, nebo přidat do filtru, atd.)

Děkuji

MatyasKoval commented 1 year ago

Děkuji za upřesnění.

Prokonzultuji toto s kolegy programátory a jakmile od nich budu mít informace, dám Vám vědět. S pozdravem, Matyáš Kovaľ - Packeta E-Commerce Support