Re: Shortcodes for Zen Cart
Re: Shortcodes for Zen Cart
Great stuff! I have created a help page that lists all these types of time-saving tweaks:
https://docs.zen-cart.com/user/running/boilerplate/
Re: Shortcodes for Zen Cart
Congratulations (another one to add to index page bullet points).
Re: Shortcodes for Zen Cart
Can it be adapted to use short code in EZ-Pages?
I understand that EZ page are database generated so it may not be possible.
If not easy page, can it be use with any define_pages?
Thank you
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
nicksab
Can it be adapted to use short code in EZ-Pages?
I understand that EZ page are database generated so it may not be possible.
If not easy page, can it be use with any define_pages?
Thank you
EZ-Pages, yes; define-pages, no. I've created an issue on the plugin's GitHub (https://github.com/lat9/zen_short_codes) to 'remind' myself.
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
lat9
Awesome. Thank you.
it may be a dumb question, but would it possible to use shortcode to inject an "image link" as opposed to a "text link"?
if so, how would you do it?
thank you
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
nicksab
Awesome. Thank you.
it may be a dumb question, but would it possible to use shortcode to inject an "image link" as opposed to a "text link"?
if so, how would you do it?
thank you
Not a dumb question! It's possible but will take me a bit of time (which I don't have right now) to either add to the existing shortcode implementation or identify how a user-supplied one can be created.
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
lat9
Not a dumb question! It's possible but will take me a bit of time (which I don't have right now) to either add to the existing shortcode implementation or identify how a user-supplied one can be created.
Thank you lat9 for the prompt reply and I completely understand. It was just a thought about images
Re: Shortcodes for Zen Cart
I just started experimenting with shortcodes. To be honest, i am not familiar with it at all and not a pro WP user either.
I am getting an issue:
When adding this to one of my product:
Quote:
See similar Christmas floral design [zenprod id=2774 text="here"].
The product listings won't load and i am getting this long log: ( partial log attached)
Code:
[27-Nov-2024 19:12:55 America/Los_Angeles] PHP Fatal error: Uncaught Error: Maximum call stack size of 8306688 bytes (zend.max_allowed_stack_size - zend.reserved_stack_size) reached. Infinite recursion? in /includes/classes/db/mysql/query_factory.php:749
Stack trace:
#0 /includes/classes/db/mysql/query_factory.php(226): queryFactory->logQuery()
#1 /includes/classes/cache.php(35): queryFactory->Execute()
#2 /includes/classes/db/mysql/query_factory.php(241): cache->sql_cache_exists()
#3 /includes/functions/functions_products.php(31): queryFactory->Execute()
#4 /includes/functions/functions_products.php(470): zen_get_product_details()
#5 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#6 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#7 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#8 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#9 /includes/functions/functions_products.php(33): base->notify()
#10 /includes/functions/functions_products.php(470): zen_get_product_details()
#11 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#12 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#13 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#14 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#15 /includes/functions/functions_products.php(33): base->notify()
#16 /includes/functions/functions_products.php(470): zen_get_product_details()
#17 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#18 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#19 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#20 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#21 /includes/functions/functions_products.php(33): base->notify()
#22 /includes/functions/functions_products.php(470): zen_get_product_details()
#23 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#24 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#25 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#26 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#27 /includes/functions/functions_products.php(33): base->notify()
#28 /includes/functions/functions_products.php(470): zen_get_product_details()
#29 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#30 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#31 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#32 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#33 /includes/functions/functions_products.php(33): base->notify()
#34 /includes/functions/functions_products.php(470): zen_get_product_details()
#35 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#36 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#37 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#38 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#39 /includes/functions/functions_products.php(33): base->notify()
#40 /includes/functions/functions_products.php(470): zen_get_product_details()
#41 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#42 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#43 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#44 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#45 /includes/functions/functions_products.php(33): base->notify()
#46 /includes/functions/functions_products.php(470): zen_get_product_details()
#47 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#48 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#49 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#50 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#51 /includes/functions/functions_products.php(33): base->notify()
#52 /includes/functions/functions_products.php(470): zen_get_product_details()
#53 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#54 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#55 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#56 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#57 /includes/functions/functions_products.php(33): base->notify()
#58 /includes/functions/functions_products.php(470): zen_get_product_details()
#59 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#60 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#61 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#62 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#63 /includes/functions/functions_products.php(33): base->notify()
#64 /includes/functions/functions_products.php(470): zen_get_product_details()
#65 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#66 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#67 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#68 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#69 /includes/functions/functions_products.php(33): base->notify()
#70 /includes/functions/functions_products.php(470): zen_get_product_details()
#71 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#72 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#73 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#74 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#75 /includes/functions/functions_products.php(33): base->notify()
#76 /includes/functions/functions_products.php(470): zen_get_product_details()
#77 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#78 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#79 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#80 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#81 /includes/functions/functions_products.php(33): base->notify()
#82 /includes/functions/functions_products.php(470): zen_get_product_details()
#83 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#84 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#85 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#86 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#87 /includes/functions/functions_products.php(33): base->notify()
#88 /includes/functions/functions_products.php(470): zen_get_product_details()
#89 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#90 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#91 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#92 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#93 /includes/functions/functions_products.php(33): base->notify()
#94 /includes/functions/functions_products.php(470): zen_get_product_details()
#95 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#96 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#97 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#98 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#99 /includes/functions/functions_products.php(33): base->notify()
#100 /includes/functions/functions_products.php(470): zen_get_product_details()
#101 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#102 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#103 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#104 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#105 /includes/functions/functions_products.php(33): base->notify()
#106 /includes/functions/functions_products.php(470): zen_get_product_details()
#107 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#108 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#109 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#110 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#111 /includes/functions/functions_products.php(33): base->notify()
#112 /includes/functions/functions_products.php(470): zen_get_product_details()
#113 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#114 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#115 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#116 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#117 /includes/functions/functions_products.php(33): base->notify()
#118 /includes/functions/functions_products.php(470): zen_get_product_details()
#119 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#120 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#121 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#122 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#123 /includes/functions/functions_products.php(33): base->notify()
#124 /includes/functions/functions_products.php(470): zen_get_product_details()
#125 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#126 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#127 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#128 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#129 /includes/functions/functions_products.php(33): base->notify()
#130 /includes/functions/functions_products.php(470): zen_get_product_details()
#131 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#132 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#133 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#134 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#135 /includes/functions/functions_products.php(33): base->notify()
#136 /includes/functions/functions_products.php(470): zen_get_product_details()
#137 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#138 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#139 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#140 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#141 /includes/functions/functions_products.php(33): base->notify()
#142 /includes/functions/functions_products.php(470): zen_get_product_details()
#143 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#144 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#145 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#146 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#147 /includes/functions/functions_products.php(33): base->notify()
#148 /includes/functions/functions_products.php(470): zen_get_product_details()
#149 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#150 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#151 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#152 /includes/classes/traits/NotifierManager.php(87): zcObserverZenShortcodes->notify_get_product_details()
#153 /includes/functions/functions_products.php(33): base->notify()
#154 /includes/functions/functions_products.php(470): zen_get_product_details()
#155 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodes/zenprod.php(19): zen_products_id_valid()
#156 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/ShortCodeController.php(90): zenprod->get()
#157 /zc_plugins/ZenShortCodes/v1.0.0/catalog/includes/classes/observers/auto.zen_shortcodes.php(69): ShortCodeController->convertShortCodes()
#158
Strangely, it does it on only one product as far as I know. I added a similar shortcode to a different and it works fine like here https://www.royal-fleur.com/all-avai...as-joy-bouquet
The product having issue with shortcode is here https://www.royal-fleur.com/all-avai...istmas-bouquet if it helps
I believe it is a server issue like running out of memory or something.
Any way,how can i solve this?
Thank you in advance for the help
Re: Shortcodes for Zen Cart
@nicksab, what version of Zen Cart is being used?
Re: Shortcodes for Zen Cart
I'm not seeing that issue for the products you posted; what changed?
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
lat9
@nicksab, what version of Zen Cart is being used?
I am on ZC 2.0.1 with Php 8.3
Quote:
Originally Posted by
lat9
I'm not seeing that issue for the products you posted; what changed?
I had to remove the short code in order to get my product listing to display again unfortunately. I added a regular link in the product description for now
Re: Shortcodes for Zen Cart
@nicksab, I've got an update that addresses both issues you'd posted (using short codes in EZ-Pages and the recursion/out-of-memory one).
See the plugin's GitHub repository for the updates: https://github.com/lat9/zen_short_codes
Re: Shortcodes for Zen Cart
Quote:
Originally Posted by
lat9
@nicksab, I've got an update that addresses both issues you'd posted (using short codes in EZ-Pages and the recursion/out-of-memory one).
See the plugin's GitHub repository for the updates:
https://github.com/lat9/zen_short_codes
Thank you lat9 for your time and fixing my issues. It is much appreciated
I will give it a try over the weekend
I have another question though and not sure if it is possible:
When using short code, a category /product link is displayed
[zenprod id=XX text="here"] => "here" is displayed as a link
but would it possible to have:
[zenprod id=XX text="here"] => "similar product here" with "here" being the only clickable text
I guess what i am asking is : Would it be possible to display additional , non-clickable text automatically when entering a short code?
Hope this make sense
Thanks again for the amazing work
Re: Shortcodes for Zen Cart
To cut a long story short and to demonstrate the issue briefly with my custom shortcode....
If in
zc_plugins\ZenShortCodes\v1.0.0\catalog\includes\classes\ShortCodes\zenprod.php
(still using 1.0.0 due to problem reported for 1.1.0).
I add
Code:
$products_model = zen_get_products_model($products_id);
no problem.
But use this:
Code:
$products_model = zen_get_products_model((int)$_GET['products_id']);
and I get an out of memory error.
$_GET['products_id'] IS set and is the expected number.
I'm trying to use a shortcode in a product description that references that same product, and wanted to avoid needing to manually pass the id.
(An aside is that on the product_info page this shortcode code is parsed 137 times!)
This is all on a vanilla ZC, php 8.4.5.
Re: Shortcodes for Zen Cart
While maybe an isoteric anomaly, I was intending to use a shortcode to create a curl request to a manufacturer API to create a link to the manufacturers current documentation, on the product page.
Since that fails with the same memory error, it seemed easier to investigate the GET of the previous post...I don't see why that should be causing a problem...but the ins and outs of the plugin framework are still a bit advanced for me!