P
by François Pons
4.6 (13 reviews)
PrestaShop Integration
Add integration using shortcodes and widgets from a PrestaShop e-commerce to your blog
Tested up to WP 6.3 (Current: 6.9)
v0.9.15
Current Version v0.9.15
Updated 2 years ago
Last Update on 10 Oct, 2023
Synced 11 hours ago
Last Synced on
Rank
#14,896
-67 this week
Active Installs
100+
-41.9%
KW Avg Position
42
—
No change
Downloads
31.5K
+2 today
Support Resolved
0%
—
No change
Rating
92%
Review 4.6 out of 5
4.6
(13 reviews)
Next Milestone 200
100+
200+
1,742
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro
Unlock Exact Install Count
See the precise estimated active installs for this plugin, calculated from real-time ranking data.
- Exact install estimates within tiers
- Track install growth over time
- Milestone progress predictions
Need 45 more installs to reach 200+
Rank Changes
Current
#14,896
Change
Best
#
Downloads Growth
Downloads
Growth
Peak
Upgrade to Pro
Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.
Upgrade NowReviews & Ratings
4.6
13 reviews
Overall
92%
5
11
(85%)
4
1
(8%)
3
0
(0%)
2
0
(0%)
1
1
(8%)
Tracked Keywords
Showing 2 of 2| Keyword | Position | Change | Type | Updated |
|---|---|---|---|---|
| prestashop | 34 | — | Tag | 11 hours ago |
| eshop | 50 | — | Tag | 11 hours ago |
Unlock Keyword Analytics
Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.
- Full keyword position tracking
- Historical ranking data
- Competitor keyword analysis
Track This Plugin
Get detailed analytics, keyword tracking, and position alerts delivered to your inbox.
Start Tracking FreePlugin Details
- Version
- 0.9.15
- Last Updated
- Oct 10, 2023
- Requires WP
- 3.3.0+
- Tested Up To
- 6.3
- PHP Version
- N/A
- Author
- François Pons
Support & Rating
- Rating
- ★ ★ ★ ★ ★ 4.6
- Reviews
- 13
- Support Threads
- 0
- Resolved
- 0%
Keywords
Upgrade to Pro
Unlock keyword rankings, search positions, and detailed analytics with a Pro subscription.
Upgrade NowSimilar Plugins
WP Adminify – White Label WordPress, Admin Menu Editor, Login Customizer
7K+ installs
#2,736
Master Addons For Elementor - White Label, Free Widgets, Hover Effects, Conditions, & Animations
40K+ installs
#929
Qi Addons For Elementor
200K+ installs
#253
MW
MW WP Form
200K+ installs
#262
WPFront Scroll Top
200K+ installs
#270
Frequently Asked Questions
Common questions about PrestaShop Integration
No, the plugin will not work with any PrestaShop older than 1.4 because the internal structure of PrestaShop has been improved since 1.4 by using a FrontController class. This plugin add support by adding a specific controller for integration with WordPress. It could be possible to add support for PrestaShop 1.3 or older, but it need to be coded. So to get support for PrestaShop Integration, the better is that you upgrade your PrestaShop to at least 1.4 series. You will get furthermore newer functionnalities and bug fixes.
Yes, it should. But If It doesn't work, you may need to update PrestaShop autoload behaviour as indicated below. PrestaShop 1.4 is an old version now, and has not been tested with this release. If your installation is working nicely, please do not update as the 0.9.1 release only add features for newer PrestaShop.
Yes, only since version 0.8 which is still compatible with PrestaShop 1.4.
Yes, at least using 0.9.1 (0.9 may be working on some case, but new themes structure may have been hard to integrate).
Yes, at least using 0.9.4 but you may need to patch PrestaShop classes/controller/Controller.php as follows in order to force ajax request to save cookie : --- classes/controller/Controller.php.orig 2018-11-06 20:24:21.000000000 +0000 +++ classes/controller/Controller.php 2019-03-05 07:42:15.960964683 +0000 @@ -687,6 +687,9 @@ Hook::exec('actionBeforeAjaxDie'.$controller.$method, array('value' => $value)); Hook::exec('actionAjaxDie'.$controller.$method.'Before', array('value' => $value)); + if (isset(Context::getContext()->cookie)) + Context::getContext()->cookie->write(); + die($value); } PrestaShop 1.7 can be easier to integrate natively as a lot of small files are included, furthermore inclusion of template files with variable are not yet supported, so you will have to take care of them being made from smarty directly. For example, including a _partials/stylesheet.tpl file will be done like that (do not forget templates leading directory) : <?php ps_include( 'templates/_partials/stylesheets.tpl' ); ?> A new function ps_body_class is an helper function to automatically adds body classes for PrestaShop (inspired from the body_class function of WordPress). Here is an example for adding the class layout-left-column but removing the class layout-full-width given by PrestaShop : <body id="wordpress" <?php body_class( ps_body_classes( 'layout-left-column', 'layout-full-width' ) ); ?>> Another example for a typical footer.php PHP calls juste before the </body> line (ps_get_template_vars() has been improved to simplify access to $javascript.bottom smarty expression here) : <?php ps_set_template_vars( 'javascript', ps_get_template_vars( 'javascript', 'bottom' ) ); ?> <?php ps_include( 'templates/_partials/javascript.tpl' ); ?> <?php ps_hook( 'displayBeforeBodyClosingTag' ); ?> <?php wp_footer(); ?> The above code is the direct translation of the PrestaShop 1.7 template code : {block name='javascript_bottom'} {include file="_partials/javascript.tpl" javascript=$javascript.bottom} {/block} {block name='hook_before_body_closing_tag'} {hook h='displayBeforeBodyClosingTag'} {/block}
Maybe, sorry it has been untested yet, as PrestaShop 1.7 may be supported it may work as well.
Yes, PhenixSuite is a fantastic fork of PrestaShop 1.6 and support PHP 8.X as well as many other bugs fixed. It is a good alternative if you do not want to upgrade to PrestaShop 1.7 or 8.X. You can get more information at EoliaShop page about PhenixSuite.
Yes, it should work. Note that the version 0.9.8 has been fixed to use the right PrestaShop favicon to import, or the may shop favicon may be used. Furthermore, it may be needed to fix classes/shpop/Shop.php file to choose the right shop according to domain used. A new feature was added in version 0.9.8 to "import" PrestaShop frontpage for the WordPress frontpage but notice that no links are changed and duplicate content may appear if you do not take care. The plugin has been tested with a single PrestaShop shop and WordPress multisite and with both multishop and multisite. I can't access my WordPress frontpage due to a redirection to the PrestaShop frontpage If you are using PrestaShop 1.5 and you installed WordPress in root of your hosting and PrestaShop in a subdirectory, you will get this error. You need to patch PrestaShop file classes/shop/Shop.php as follows : --- classes/shop/Shop.php.orig 2013-01-07 09:18:32.000000000 +0100 +++ classes/shop/Shop.php 2013-01-07 09:25:26.000000000 +0100 @@ -368,6 +368,9 @@ if (!Validate::isLoadedObject($default_shop)) throw new PrestaShopException('Shop not found'); + if (defined('PRESTASHOP_INTEGRATION_VERSION')) { + $shop = $default_shop; + } else { $params = $_GET; unset($params['id_shop']); if (!Configuration::get('PS_REWRITING_SETTINGS')) @@ -388,6 +391,7 @@ } header('location: '.$url); exit; + } } } But you may notice other redirection which should be deactivated also, according to your PrestaShop version. The patch below is for a PrestaShop 1.6 version : --- classes/shop/Shop.php.orig 2015-03-05 09:03:41.340455129 +0100 +++ classes/shop/Shop.php 2016-02-11 20:57:05.779965183 +0100 @@ -345,6 +345,8 @@ } // If an URL was found but is not the main URL, redirect to main URL + /* BEGIN HACK : do not redirect */ + if (!defined('PRESTASHOP_INTEGRATION_VERSION')) if ($through && $id_shop && !$is_main_uri) { @@ -362,6 +364,7 @@ } } } + /* END HACK */ } $http_host = Tools::getHttpHost(); @@ -401,7 +404,11 @@ // Hmm there is something really bad in your Prestashop ! if (!Validate::isLoadedObject($default_shop)) throw new PrestaShopException('Shop not found'); - + if (defined('PRESTASHOP_INTEGRATION_VERSION')) { + // HACK for PrestaShop Integration + $params['id_shop'] = $id_shop = $default_shop->id; + $shop = $default_shop; + } else { $params = $_GET; unset($params['id_shop']); $url = $default_shop->domain; @@ -422,6 +429,7 @@ header('HTTP/1.0 '.$redirect_type.' Moved'); header('location: http://'.$url); exit; + } } elseif (defined('_PS_ADMIN_DIR_') && empty($shop->physical_uri)) { This bug is caused by PrestaShop trying to figure out which shop is used as it support now the multishop feature. The way it is done is causing the bug, the patch above is mandatory to avoid a redirection being made to the default shop. I get an error message about autoloader You may be using a WordPress plugin that use PHP autoloader, but PrestaShop assume it is the only one using PHP autoloader : you need to modify the config/autoload.php file by changing the name of the function (for example : __autoload_prestashop) and to add at the end of the file the following line : spl_autoload_register('__autoload_prestashop'); Note that PS 1.6 has fixed this problem, you do not need to patch the code anymore. If a customer logon in PrestaShop, informations about the user/cart is lost in WordPress You need to patch PrestaShop cookie management because this problems occurs where PrestaShop is installed in a child directory of WordPress. Please replace the $this->_path in setcookie invocation by simply '/'. This will make the cookie available to WordPress. you may use override functionnality in PrestaShop to simplify PrestaShop update in the future. Here is a code sample below if the shop is in a subdirectory and the wordpress in '/' from class/Cookie.php : if (PHP_VERSION_ID <= 50200) { /* PHP version > 5.2.0 */ return setcookie($this->_name, $content, $time, '/' /* $this->_path */, $this->_domain, $this->_secure); } else { return setcookie($this->_name, $content, $time, '/' /* $this->_path */, $this->_domain, $this->_secure, true); } If you try to use two distinct domains for the blog and the shop, it will not work and it is not fixable. At least you need to use two subdomains of the same domain for the blog and the shop, and apply the cookie management to the common domain. This patch is not necessary when WordPress is installed in a child directory of PrestaShop installation, typically named blog. I get Javascript errors about missing variables You are probably using PrestaShop 1.6 and the theme has a special file called global.tpl wich collect all the JS variable you need to include it manually as follow in header.tpl (or footer.tpl if you have chosen to move JS code at the end) : <?php ps_include( 'global.tpl' ); ?>
You have a specific public function for that, for example for the custom hook displayBanner you can put in your WordPress theme : <?php ps_hook( 'displayBanner' ); ?> I get others JavaScript errors This plugin does not sync PrestaShop and WordPress set of JavaScript ! Jquery is used by both PrestaShop and WordPress, but PrestaShop generally uses old JS files, and WordPress newer version... So in order to avoid conflicts and so on, you may consider something like that (if your PrestaShop is using JQuery 1.11.0, please check, you may need to add other scripts as well) : function mytheme_init() { if ( !is_admin() ) { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', '', array(), '1.11.0' ); wp_enqueue_style( 'jquery' ); } } add_action( 'init', 'mytheme_init' ); I cannot configure the widgets Sorry about that but you need the plugin Classic Widget for all the 0.9 release to be able to configure them. If I have enough time I will add the bloc widget functionnalities to 1.X release of PrestaShop Integration.