Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jak volat funkci pro zjištění platnosti členství? #20

Closed
vlastimilott opened this issue Oct 8, 2019 · 11 comments · Fixed by #25
Closed

Jak volat funkci pro zjištění platnosti členství? #20

vlastimilott opened this issue Oct 8, 2019 · 11 comments · Fixed by #25
Assignees
Milestone

Comments

@vlastimilott
Copy link

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í.

@vaclavgreif
Copy link
Collaborator

Dobrý den, mrkněte na commit de647da, 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()

@jakubboucek
Copy link
Member

Uf! Tohle řešení je sice jednoduché, ale vůbec se mi nelíbí.

  1. Využívá to globální jmenný prostor, v němž zakládá funkci ssc() - ta může být kolizní s jiným pluginem.
  2. 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í…

@vlastimilott
Copy link
Author

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();

@vaclavgreif
Copy link
Collaborator

vaclavgreif commented Oct 8, 2019

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.

@vlastimilott
Copy link
Author

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...

@jakubboucek
Copy link
Member

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.

@vlastimilott
Copy link
Author

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

@jakubboucek
Copy link
Member

Dobrý den, ano bude to co nejdříve, omlouváme se za neplánované prodlení z důvodu nemoci.

@jakubboucek
Copy link
Member

@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

@jakubboucek
Copy link
Member

@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.

@jakubboucek
Copy link
Member

Verze 2.1.0 byla právě vydána.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.

3 participants