Closed vlastimilott closed 5 years ago
Dobrý den, mrkněte na commit https://github.com/redbitcz/simpleshop-wp-plugin/commit/de647da02f226751877368a43b98a032ca581c72, jestli to dává takto smysl. Přidává to container, k funkci user_can_view_post
byste se pak dostali ssc()->access->user_can_view_post()
Uf! Tohle řešení je sice jednoduché, ale vůbec se mi nelíbí.
ssc()
- ta může být kolizní s jiným pluginem. No právě, taky mi to nepřijde efektivní. Statickou metodu pro to využít nejde. co třeba instanci pluginu vložit do proměnné? Volá se jen new Loader();
Využívá to globální jmenný prostor, v němž zakládá funkci ssc() - ta může být kolizní s jiným pluginem.
Stejně jako třeba woocommerce se svou funkcí WC()
, bohužel WordPress nemá nějaký container, do kterého bychom mohli jen plugin přidat.
A především: Vytváří to novou instanci pluginu. Nemá WP něco jako container již běžících pluginů? Pokud ne, tak si asi nadefinujeme vlastní…
Ne, WP žádný container nemá. Ten kód dělá podle mě přesně tohle - vytváří container. Nevytváří to novou instanci pluginu, vytvoří to jednu a tu pak jen vrací.
Statickou metodu pro to využít nejde. co třeba instanci pluginu vložit do proměnné? Volá se jen new Loader();
Nerozumím, není to statická metoda, vrací to jednu instanci třídy Loader.
Aha, už chápu, já jsem se odvolával na new Loader(); což tam bylo předtím, tady ten kontejner to řeší. Když pominu kolizi funkce (nízké riziko), tak by to jako řešení šlo...
To nízké riziko je potřeba ale zcela vymýtit, protože je to úplně zbytečný bottleneck, který v případě kolize způsobí fatal error, který shodí celý Wordpress.
Zkoumám lepší řešení. Ale v zásadě použiju návrh @vasikgreif, jen ho upravím, abych odstranil nevýhody.
Chtěl bych se zeptat, jestli mohu s úpravou počítat v dohledné době. Pracuji na klientském webu a musím to nějak vyřešit, ideálně by bylo řešení v pluginu... díky
Dobrý den, ano bude to co nejdříve, omlouváme se za neplánované prodlení z důvodu nemoci.
@vlastimilott Připravil jsem verzi pluginu, která obsahuje všechny Vámi požadované změny. Nicméně toto issue přinání možnou zpětnou nekompatibilitu a musíme ho před vydáním důkladně otestovat. Proto navrhuji, abyste si zkusil plugin v této verzi sám otestovat, zda Vám vyhovuje, aktuální testovací balíček je zde: https://github.com/redbitcz/simpleshop-wp-plugin/releases/tag/v2.1.0-alpha
@vlastimilott Dobrý den, vzhledem k možné nekompatibilitě této úpravy nechci tuto změnu vydávat jen v patch verzi, ale bude vydána nová minor verze. Kolegyně plugin testují, ale narazily tam na drobnosti, které by u některých zákazníků mohly způsobit komplikace, takže se vydání tak asi o týden zpozdí.
Moc by nám pomohlo, pokud byste byl ochoten svoje zkušenosti s WP poskytnout na malou pomoc a připravovanou verzi 2.1.0 nainstalovat z připraveného balíčku a pomohl nám ji otestovat.
Verze 2.1.0 byla právě vydána.
Jak se dá zavolat metoda objektu Access-> user_can_view_post ve vlastní šabloně? Přístup k instanci pluginu a tedy instanci Access není možný. Případně jak si inicializovat svou instanci Access (co má být v argumentu settings)? Potřeboval bych ověřovat na detailu článku, že má uživatel platné členství a podle toho mu obsah zobrazit, nebo ho poslat na stránku, kde ho může koupit. Jde o magazín s x lety archivu, který zpětně zpoplatňujeme a úprava shortcody není možná.
Díky za objasnění.