Cannot Read Property 'is_mobile' of Undefined Revolution Extension Video

This page lists WordPress plugins, themes, and functions that may not function as expected or are currently problematic on the Pantheon platform. This is not a comprehensive list (see other issues). Nosotros continually update it as issues are reported and/or solved. If you are enlightened of any modules or plugins that do not piece of work as expected, please contact support.

Nosotros practise not prevent you from installing and using these plugins or themes. Notwithstanding, we cannot provide support for incompatible plugins and themes, or if they are used against the guidance provided here.

Plugin & Theme Maintainers: If your work is listed hither, please reach out to us. We're happy to assist provide information that tin can lead to disharmonize resolutions between your code and the platform.

If your work is already updated simply even so listed here, let united states of america know and then we tin can remove it, or submit a pull request.

Assumed Write Access

Some plugins and themes are built on the assumption that the CMS has write admission to the entire filesystem. While this is ordinarily truthful of standard LAMP/LEMP stack server configuration, Pantheon and other specialized platforms do non. This can result in runtime errors when the software can't write to locations in the codebase in Test and Live environments.

Refer to documentaton on Using the Pantheon WebOps Workflow for more than information on how Pantheon differentiates "code" from "files".

The solution to these bug is commonly to create a symboloic link (symlink) from the plugin's expected write location to a location in the writable filesystem (/sites/default/files for Drupal, wp-content/uploads for WordPress). The process for creating a symlink and verifying that the symlink is correct is detailed in Using Extensions That Assume Write Admission.

The following is a list of plugins that assume write admission, and the specific file or folder that needs to be symlinked to resolve:

Plugin

Assumed Write Path

Notes

AccessAlly WordPress LMS

wp-content/accessally-protected-content

PROTECTED_CONTENT_FOLDER variable within the plugin assumes admission to PATH

All-in-Ane WP Migration

wp-content/ai1vm-backups

The platform is not designed for large backup files, and this plugin can cause your deployment workflows to intermission. Y'all tin download full backups from the Site Dashboard. See beneath for additional data.

wp-content/plugins/all-in-one-wp-migrations/storage

Autoptimize

wp-content/resources

Encounter the Autoptimize section below for other solutions.

Divi WordPress Theme & Visual Page Builder

wp-content/et-cache

Recollect to repeat this process for each environment, including Multidevs.

NextGEN Gallery

wp-content/gallery

You can override this path on the plugin configuration page (/wp-admin/admin.php?page=ngg_other_options) to utilise wp-content/uploads/gallery/ instead of creating a symlink.

Nitropack

wp-content/nitropack and advanced.enshroud.php

Allows for the caching characteristic to be disabled and so that other features, such equally optimization, tin can be used side-by-side.

WooZone

wp-content/plugins/woozone/cache

WP Fastest Cache

wp-content/enshroud

This plugin uses is_dir to verify the target directory, which will return simulated if the directory is a symlink. This causes a permissions fault when deleting cache files.

WP-Rocket

wp-content/wp-rocket-config

wp-content/cache

WPML - The WordPress Multilingual Plugin

wp-content/languages

Alternating solutions are listed in the WPML section.

Define FS_METHOD

By default, WordPress tests each directory before uploading a file by writing a small temporary file. Some plugins and themes may have bug on the Pantheon platform due to this write access test. You can avert these issues (and skip the test of writing a minor file) past defining the FS_METHOD equally straight in the wp-config.php file in a higher place the line /* That'south all, stop editing! Happy Pressing. */. To resolve the issue, configure the wp-config.php to resemble the post-obit code sample:

                          if              (              isset              (              $_ENV              [              'PANTHEON_ENVIRONMENT'              ]              )              )              {              ascertain              (              'FS_METHOD'              ,              'direct'              )              ;              }                      

The successful write of the temporary file returns "direct". Y'all can specify the direct file system method beforehand to permit operations to run slightly faster. Note that the direct specification forces the method to utilise straight file I/O requests from inside PHP, which tin can open up security issues on poorly configured hosts.

Plugins and themes with problems resolved (at least partially) by this include the following:

  • AccessAlly WordPress LMS
  • Blabber Theme
  • Divi WordPress Theme & Visual Page Builder
  • Upshot Espresso
  • SmartCrawl Pro
  • Thrive Theme Architect
  • Visual Composer: Website Builder
  • WPBakery: Page Builder
  • Wordfence Security
  • YotuWP Piece of cake YouTube Embed
  • WPML - The WordPress Multilingual Plugin

All-in-One WP Migration

Last reviewed: Nov thirty 2020

Effect: All-in-One WP Migration attempts to store all of the environs'south code, database, and files in version control. This is too much for git to handle, and volition cause all deployments to fail.

  Warning

There is a very strong possibility this plugin volition break the site's workflows, leaving you unable to deploy for a minimum of 24 hours.

Solution: Use the platforms automated backups from the Site Dashboard.


AMP for WP – Accelerated Mobile Pages

Last reviewed: December 05 2019

Issue: With the AMP for WP – Accelerated Mobile Pages plugin, enabling the Mobile Redirection feature within AMP for WP sends a session cookie which conflicts with platform-level page caching. See the WordPress support forum for details.

Solution: Disable the selection for Mobile Redirection inside the AMP for WP options page. Then handle mobile redirection via PHP within wp-config.php, for case:

                          if              (              (              is_mobile              (              )              )              &&              (              strrpos              (              $_SERVER              [              'REQUEST_URI'              ]              ,              'amp'              )              ==              faux              )              )              {              header              (              'HTTP/1.0 301 Moved Permanently'              )              ;              header              (              'Location: https://'              .              $_SERVER              [              'HTTP_HOST'              ]              .              $_SERVER              [              'REQUEST_URI'              ]              .              '/amp'              )              ;              // Proper noun transaction "redirect" in New Relic for improved reporting (optional).              if              (              extension_loaded              (              'newrelic'              )              )              {              newrelic_name_transaction              (              "redirect"              )              ;              }              exit              (              )              ;              }              function              is_mobile              (              )              {              if              (              empty              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              )              )              {              $is_mobile              =              simulated              ;              }              elseif              (              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Mobile'              )              !==              false              // many mobile devices (all iPhone, iPad, etc.)              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Android'              )              !==              false              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Silk/'              )              !==              faux              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Kindle'              )              !==              false              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'BlackBerry'              )              !==              false              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Opera Mini'              )              !==              false              ||              strpos              (              $_SERVER              [              'HTTP_USER_AGENT'              ]              ,              'Opera Mobi'              )              !==              faux              )              {              $is_mobile              =              true              ;              }              else              {              $is_mobile              =              false              ;              }              return              $is_mobile              ;              }                      

Autoptimize

Last reviewed: February x 2020

Issue 1: Autoptimize assumes write access to the site's codebase within the wp-content/resources directory, which is not granted on Exam and Live environments on Pantheon by design. For additional details, refer to Using Extensions That Assume Write Access.

Solution: Configure Autoptimize to write files within the standard wp-content/uploads path for WordPress (wp-content/uploads/autoptimize) past adding the following to wp-config.php:

                          /** Changes location where Autoptimize stores optimized files */              define              (              'AUTOPTIMIZE_CACHE_CHILD_DIR'              ,              '/uploads/autoptimize/'              )              ;                      

Exist certain to add this configuration above the annotate to stop editing:

Example of Autoptimize configuration above the stop editing comment

For additional details, see the Autoptimize FAQ. An alternative solution is to create a symbolic link.

Event two: Autoptimize attempts to generate the file wp-content/autoptimize_404_handler.php upon activation, and if not present will throw a php warning.

Enabling this setting requires write access and a location directive not configured in platform's Nginx configuration, generating the error:

            Alert:              file_put_contents              (              /code/wp-content/autoptimize_404_handler.php)              :              failed              to open up stream:              Permission denied in              /code/wp-content/plugins/autoptimize/classes/autoptimizeCache.php on line              642                      

Solution: Uncheck Enable 404 fallbacks in the Autoptimize settings page wp-admin/options-general.php?page=autoptimize. The Pantheon Platform does not provide support for custom HTTP server configurations, so file redirects volition non work. More information can be found in the redirect files section of Avant-garde Redirects and Restrictions.


Amend Search And Replace

Concluding reviewed: Sep 27 2019

Issue: The Better Search and Supercede plugin is not accessible in Test or Live (read-merely environments in Pantheon) due to the install_plugins capability cheque of the plugin. Follow this issue on the WordPress back up forum.

Solution 1: There is an undocumented filter in place to override the capability bank check. Calculation this in the your theme's function.php can make it work:

                          role              better_search_replace_cap_override              (              )              {              render              'manage_options'              ;              }              add_filter              (              'bsr_capability'              ,              'better_search_replace_cap_override'              )              ;                      

Solution 2: Utilize an alternative Search and Replace plugin similar WP Drift DB


Bookly

Consequence: Sessions are implemented in a way that volition not let Bookly to office with the WP Native Sessions plugin, either installed as a regular plugin or an mu-plugin. Follow this issue on the WordPress support forum.


Issue: For the Broken Link Checker, a depression value set for "Check link every X hours" can consume a large amount of server resources.

Solution: Ensure that the value is ready for the default of 72 hours or greater.


Caching Plugins

This includes just is not limited to:

  • Batcache
  • W3 Total Cache
  • WP Super Cache.

Effect: Conflicts with platform-level page caching.

Solution: See Caching: Advanced Topics for details on how to featherbed the platform page cache.


Coming Shortly

Concluding reviewed: October 03 2018

Issue: The Coming Shortly plugin'south Maintenance way gives the ERR_TOO_MANY_REDIRECTS error in the frontend. This plugin returns the error 503 Header status - Service Temporarily Unavailable which creates a redirect loop. Please run across this issue for more than details regarding the error.

Solution: This plugin only works in the Coming Soon Mode on Pantheon. Y'all need to add content to the Page Settings > Message, then the Coming Soon page won't appear every bit a blank page.

Alternatively, if you lot don't desire your site to be crawled by search engines, you tin can lock information technology via the platform and y'all can use a custom lock page.


Last reviewed: Aug 21 2021

Issue 1: The Contact Form vii plugin relies on $_SERVER['SERVER_NAME'] and $_SERVER['SERVER_PORT'], which pass static values subject field to change over time during routine platform maintenance.

Solution: Add the following to wp-config.php:

                          $_SERVER              [              'SERVER_NAME'              ]              =              $_SERVER              [              'HTTP_HOST'              ]              ;              if              (              isset              (              $_ENV              [              'PANTHEON_ENVIRONMENT'              ]              )              )              {              if              (              isset              (              $_SERVER              [              'HTTP_USER_AGENT_HTTPS'              ]              )              &&              $_SERVER              [              'HTTP_USER_AGENT_HTTPS'              ]              ===              'ON'              )              {              $_SERVER              [              'SERVER_PORT'              ]              =              443              ;              }              else              {              $_SERVER              [              'SERVER_PORT'              ]              =              80              ;              }              }                      

For more details, see SERVER_NAME and SERVER_PORT on Pantheon.

Upshot ii: In order to attach or upload files, local file attachments set in the admin panel cannot come from the uploads folder. Therefore, you must straight attachments to a temporary folder.

Solution: Yous can customize the upload path for the temporary folder using the following:

define( 'WPCF7_UPLOADS_TMP_DIR', WP_CONTENT_DIR . '/uploads/wpcf7_uploads' );

Please note that the temporary folder needs to reside in a folder that can be accessed past Dev, Test, Live, or whichever Multidev you are using.

At this fourth dimension, this setting alone does non resolve the result. An issue has been submitted past the community and is being worked on here.

The suggested temporary workaround is to comment out the following code in your /contact-form-seven/includes/mail.php file:

                          # Annotate out the post-obit code:              if              (              !              wpcf7_is_file_path_in_content_dir              (              $path              )              )              {              if              (              WP_DEBUG              )              {              trigger_error              (              sprintf              (              /* translators: %s: Attachment file path. */              __              (              'Failed to attach a file. %s is not in the immune directory.'              ,              'contact-form-vii'              )              ,              $path              )              ,              E_USER_NOTICE              )              ;              }              return              false              ;              }                      

Last reviewed: Aug 24 2018

Outcome: The Constant Contact Forms plugin adds dependencies using Composer and provides a .gitignore file which prevents these dependencies from existence picked up by Git. This leads to problematic deployments as not all code moves forwards to Examination and Live.

Solution: Remove .gitignore files from the constant-contact-forms and constant-contact-forms/vendor/psr/log directories.


Disable Rest API and Require JWT / OAuth Authentication

Terminal reviewed: Apr 01 2019

Issue: When the Disable REST API and Require JWT / OAuth Authentication plugin is enabled forth with WooCommerce, WP-CLI and Pantheon dashboard workflows like Cache Clear can fail. This issue may not happen for environments where WP-CLI is not installed (local machine, other platforms, etc):

            Fatal error: Uncaught Mistake: Call to undefined method WP_Error::get_data() in /srv/bindings/.../code/wp-content/plugins/woocommerce/includes/cli/class-wc-cli-runner.php:64          

For WooCommerce, the CLI runner needs some of the REST endpoints for it to function. The plugin is simply allowing a specific set of paths for allowed access.

Solution: In the plugin.php file, edit the if ( ! is_user_logged_in() ) conditional to include a cheque for CLI PHP requests:

                          if              (              !              is_user_logged_in              (              )              &&              php_sapi_name              (              )              !=              'cli'              )              {              // Only let these endpoints: JWT Auth.              $allowed_endpoints              =              array              (              '/jwt-auth/v1/token/validate'              ,              '/jwt-auth/v1/token'              ,              '/oauth/authorize'              ,              '/oauth/token'              ,              '/oauth/me'              ,              )              ;              $allowed_endpoints              =              apply_filters              (              'reqauth/allowed_endpoints'              ,              $allowed_endpoints              )              ;                      

Divi WordPress Theme & Visual Folio Builder

Last reviewed: October 09 2020

Upshot 1: Divi WordPress Theme & Visual Page Architect may produce the following mistake when attempting to edit pages because the page builder is attempting to write to three different nested folders in the web root:

                          ...              /data/Utils.php:              758              ET_Core_Data_Utils              ::              WPFS              (              )              :              [              ERROR              ]              :              Unable to write to filesystem.              Please ensure that the web server process has write access to the WordPress directory.                      

Solution 1: The well-nigh reliable solution is to access the Divi Theme Options > Builder > Advanced section and disable Static CSS File Generation.

Solution ii:

  1. Disable Static CSS file generation in the Divi theme.

  2. Disable Dynamic CSS at Divi > Theme Options > General > Performance and click to disable Dynamic CSS.

  3. Create a symlink in wp-content/et-cache.

  4. Ascertain the FS_METHOD in the wp-config.

  5. Purge the contents of et-cache but not the et-enshroud file itself.

Issue 2: The WordPress admin dashboard becomes slow when editing posts using Divi.

Solution: When the wp-content/uploads/et-cache directory gets as well full, information technology tends to slow downwards. Large lists of files volition slow down the admin area even when Static CSS file generation is disabled. Clear the cache past accessing the site's files via SFTP. Empty the contents inside the files/et-cache folder, but practice non remove the binder. Some files volition exist regenerated within the files/et-cache folder; this is expected beliefs. Over time the files tin can abound too large, specially if Static CSS generation is still enabled, and you may need to repeat the steps to empty the folder.


Elementor

Last reviewed: Oct 08 2020

Effect: Elementor Uses the current full URI to link to styled assets, which are invalid when the lawmaking is pushed from 1 environment to some other. This path cannot be changed via the WP-CLI search-replace function, or any other search & replace plugin.

Solution: Use the search-replace feature built in to Elementor, plant at /wp-admin/admin.php?page=elementor-tools#tab-replace_url.


Outcome Espresso

Last reviewed: Nov 15 2018

Consequence one: Event Espresso displays the following error:

            PHP Fatal error: Uncaught EE_Error: An endeavour to access and/or write to a file on the server could not be completed due to a lack of sufficient credentials.          

Solution: Define FS_METHOD.

Issue 2: Enabling Event Espresso sends a session cookie which conflicts with platform-level page caching.

Solution: Session autostart can exist disabled conditionally using FHEE_load_EE_Session filter.


Facebook for WordPress (official-facebook-pixel)

Terminal reviewed: November 22 2021

Upshot: The plugin includes Git submodules in code/wp-content/plugins/official-facebook-pixel/vendor/techcrunch/wp-async-task/

which returns a PHP error because thewp-async-task/* can't exist promoted to other environments due to the Git submodules.

            Warning:              include              (              /code/wp-content/plugins/official-facebook-pixel/vendor/composer/              .              .              /techcrunch/wp-async-task/wp-async-task.php)              :              failed              to open stream:              No such file              or              directory in              /code/wp-content/plugins/webp-converter-              for              -media/vendor/composer/ClassLoader.php          

Solution: Download the plugin from https://wordpress.org/plugins/official-facebook-pixel/ and excerpt it to your desktop. So navigate to official-facebook-pixel/vendor/techcrunch/wp-async-job and delete the .git & .gitignore files before uploading to Dev.


FacetWP

Last reviewed: Oct xv 2019

Issue: The FacetWP plugin conflicts with New Relic.

Solution: Disable New Relic when using FacetWP.


Fast Velocity Minify

Last reviewed: October 12 2019

Issue: When using the Fast Velocity Minify, the Site suddenly shows a white screen of death.

Solution: Because the bounden path tin alter on our Platform, the cache folder path may change. To manually reconfigure the cache path, go to Fast Velocity Minify's Settings tab, and click Cache Location. Recall to clear the cache from Pantheon and flush the Redis enshroud.


Force Login

Last reviewed: Jul 26 2018

Upshot: The Force Login plugin appends a port number using $_SERVER['SERVER_PORT'] at the end of the URL when the user logs in to the site.

Solution: See Set SERVER_PORT Correctly.


Last reviewed: February twenty 2020

Effect: The GDPR Cookie Consent plugin sends two set up-cookie headers in each response, which breaks caching on Pantheon's Global CDN. For case:

                                                                                                                                                                                                                                                                                                                                                                                      curl              -I https://www.instance.com HTTP/2              200              cache-control: public, max-age=              600              content-type: text/html;              charset              =UTF-8 server: nginx              set-cookie: cookielawinfo-checkbox-necessary=yep;                expires                =Thu,                xx-Feb-2020                17:31:51 GMT;                Max-Age=                3600                ;                path                =/              set-cookie: cookielawinfo-checkbox-non-necessary=yes;                expires                =Thu,                twenty-Feb-2020                17:31:51 GMT;                Max-Historic period=                3600                ;                path                =/10-pantheon-styx-hostname: styx-fe1-a-789d66bff9-tztp6 ten-styx-req-id: 7f93c166-53fe-11ea-803e-b26d7703e33f appointment: Thu,              20              Feb              2020              xvi:31:51 GMT 10-served-by: cache-mdw17379-MDW, cache-chi21146-CHI x-cache: MISS, MISS x-enshroud-hits:              0,              0              x-timer: S1582216311.492451,VS0,VE204 vary: Accept-Encoding, Cookie, Cookie age:              0              accept-ranges: bytes via:              one.one              varnish          

Solution: Several users have reported that upgrading to the premium version of this plugin and disabling the included script blocker fixed the issue. For boosted back up, piece of work with the plugin maintainers and review related documentation for the premium version.


H5P

Last reviewed: Nov 05 2019

Event: Adding new libraries or content types from the H5P hub through the admin interface (or uploading large files from slow internet connections) can hitting our max execution timeout, resulting in a 504 error:

H5P Timeout Error

While not a solution, re-running the Install process multiple times may effect in success. You can also endeavor to upload .hp5 files from your local computer. If local uploads hit the timeout, delight try from a faster connectedness.


HM Require Login

Last reviewed: Nov 04 2021

Issue: When using the HM Require Login plugin, WordPress'southward cookies disappear presently afterward a user successfully logs in. When the user attempts to access a 2d page in the WordPress Admin, the login screen is displayed.

Solution: Use an alternative plugin such every bit Force Login or Restricted Site Access.


Hummingbird

Concluding reviewed: Jan 20 2022

Issue: When using the Hummingbird plugin on a locked site, the user may come across an HTTP 400-level (client fault) response.

Solution: To resolve this issue flush the Hummingbird cache. Annotation that flushing the cache purges the cache storage, which might affect other processes that use the same storage.


InfiniteWP

Terminal reviewed: Oct 01 2019

Issue ane: Installing the InfiniteWP plugin admin panel on a Pantheon hosted site is not possible, because the plugin hardcodes the database credentials and uses a custom port in the URL. Our platform offers database credentials and offers them as an surround variable, and does not allow web access on ports other than 80 and 443.

Effect 2: Cannot remotely update core, or install/update themes and plugins in the Test and Live environments.

Solution: Due to the read only nature of Test and Live environments, remote updates can only exist done in Dev, then deployed to Examination and Live environment. Consider using a Custom Upstream or WP Site Network instead if you are deploying like codebase, theme and plugins for a grouping of sites hosted on Pantheon.


Instashow

Outcome: The Instashow plugin relies on query parameters that are not uniform with Pantheon's Edge Enshroud. See PANTHEON_STRIPPED for more information. This inhibits the ability to ready the dominance token required to make the plugin part.


iThemes Security

Last reviewed: February 10 2020

Upshot 1: The "File Change Detection" check in the iThemes Security plugin, warns site admins when files are modified. On Pantheon, automated backups volition trigger this alarm.

Solution: Disable the "File Change Detection" component of the plugin. Code files in the Test and Live environments are not writable, and so this is non a security risk on Pantheon.

Issue 2: iThemes Security attempts to change nginx.conf, .htaccess and wp-config.php. Components that need write admission to these files will not work since nginx.conf cannot be modified and code files on the Exam and Live environments are not writable.

Solution: Modifications to wp-config.php should be done in Dev or Multidev environments, then deployed forward to Test and Live.


ManageWP Worker

Last reviewed: Oct 12 2018

Issue ane: The ManageWP Worker plugin displays an error when adding a site in the ManageWP dashboard:

Site could not be added - Bad HTTP response (403 Forbidden)

This fault sometimes leads users to believe that ManageWP'southward IP addresses need to be allowlisted on the platform.

Solution: Pantheon does not block any IPs, and there is nothing that would require an allowlist. Most probable there is a security plugin that temporary blocks the connectedness, or a conflicting plugin like those listed here. Temporary disable all other plugins, or the security plugins, then try adding your site again. For full troubleshooting, consult the ManageWP troubleshooting folio.

Upshot two: Cannot remotely update core, or install/update themes and plugins in the Test and Alive environments.

Solution: Due to the read just nature of Examination and Live environments, remote updates tin can only be done in Dev, then deployed to Test and Live surroundings. Consider using a Custom Upstream or WP Site Network instead if yous are deploying similar codebase, theme and plugins for a group of sites hosted in Pantheon.

Issue 3: Cannot remotely update cadre, or install/update theme and plugins in the Dev surround.

Solution: Make certain you are in SFTP mode instead of Git fashion.


Issue: The Monarch Social Sharing plugin appears to suspension WP-CLI, which is used by many of our workflows (clone, clear enshroud).


New Relic Reporting for WordPress

Terminal reviewed: May 08 2019

Issue: The New Relic Reporting for WordPress plugin sets up redundant configurations (appname and framework) with the New Relic ® Performance Monitoring configuration, resulting in new applications in New Relic. This behavior may break compatibility with New Relic integrations such as QuickSilver scripts.


Last reviewed: Dec 06 2019

Issue: The Popup Builder plugin stores full file paths to the options table, which breaks across multiple application containers.

Solution: A user patch has been submitted to the plugin maintainers.


PolyLang

Last reviewed: Dec nineteen 2019

Effect: The PolyLang plugin adds a cache-busting cookie (ex. pll_language=en) for each request.

Solution: Define the constant PLL_COOKIE to faux in wp-config.php to remove the cookie:

                          define              (              'PLL_COOKIE'              ,              false              )                      

The value of PLL_COOKIE defaults to pll_polylang. This defines the name of the cookie used by Polylang to store the visitor's linguistic communication. When PLL_COOKIE is set to fake, Polylang does non set up whatsoever cookie. Exist enlightened that in this case some features of the plugin may not work completely. For instance, the login page will not exist translated.

Meet the plugin documentation for more information on its PHP constants.


Posts 2 Posts

Last reviewed: Dec 10 2020

Event: Posts 2 Posts can have incompatible index values for meta_key on database tables when installed on a site imported from a host using 3-byte graphic symbol sets, resulting in the following mistake on import:

            Index column size as well large. The maximum cavalcade size is 767 bytes          

Solution: You tin utilize this patch to ensure new tables created by the plugin use the supported meta_key(191) index value. You can prepare existing tables via the MySQL commandline, for example:

                          Change              TABLE              wp_18_p2pmeta              Drib              Alphabetize              meta_key,              Add              Index              meta_key(meta_key(              191              )              )              ;              ALTER              TABLE              wp_29_p2pmeta              DROP              Index              meta_key,              Add              INDEX              meta_key(meta_key(              191              )              )              ;              Modify              Table              wp_30_p2pmeta              Drib              Alphabetize              meta_key,              Add together              Alphabetize              meta_key(meta_key(              191              )              )              ;              Change              Table              wp_31_p2pmeta              DROP              Alphabetize              meta_key,              ADD              INDEX              meta_key(meta_key(              191              )              )              ;              Change              TABLE              wp_33_p2pmeta              Drib              INDEX              meta_key,              ADD              INDEX              meta_key(meta_key(              191              )              )              ;                      

Query Monitor

Issue: The Query Monitor plugin creates a symlink with an accented path, which will but piece of work on the appserver where the plugin was installed. The plugin is not fully designed for deject or multi server environments.

Alternatives: Pantheon has tools in place to monitor database queries:

  • MySQL Slow Log
  • MySQL Troubleshooting with New Relic Pro

Object Sync for Salesforce

Terminal reviewed: Aug 24 2018

Issue: The Object Sync for Salesforce plugin adds dependencies using Composer, and one of these dependencies provides a .gitignore file which prevents files from being picked up by Git. This leads to problematic deployments every bit not all code moves forward to Test and Live.

Solution: Remove the .gitignore file from the object-sync-for-salesforce/vendor/pippinsplugins/wp-logging directory.


Redirection

Terminal reviewed: Jul 19 2021

Issue 1: When using the Redirection plugin, customers accept reported issues with 404 logging creating large database tables, reducing site performance.

Solution: Consider using PHP lawmaking to fix up your redirects. See Configure Redirects for more information.

Upshot two: Redirection prefers $_SERVER['SERVER_NAME'] over $_SERVER['HTTP_HOST'] for URL and server redirects. By default, $_SERVER['SERVER_NAME'] returns Pantheon's internal server name and not the current hostname. As a event, Redirection's "URL and server"-based redirects never lucifer.

Solution: In wp-config.php, add together the following higher up the line /* That's all, stop editing! Happy Pressing. */:

                          // Map $_SERVER['HTTP_HOST'] to $_SERVER['SERVER_NAME']              // to allow the Redirection plugin to work when using              // "URL and server" based redirects. Past default,              // $_SERVER['SERVER_NAME'] returns Pantheon'southward internal              // server name and non the current hostname, as a              // consequence, Redirection's "URL and server"-based              // redirects never friction match.              $_SERVER              [              'SERVER_NAME'              ]              =              $_SERVER              [              'HTTP_HOST'              ]              ;                      

Visit the SERVER_NAME and SERVER_PORT on Pantheon dr. for more information virtually how to use HTTP_Host on Pantheon.

  Warning

This workaround may potentially break other functionality that depends on the default Pantheon return value for $_SERVER['SERVER_NAME'].


Revive Old Post

Event: The Revive Old Post plugin does not set a proper callback via OAuth and the Twitter module. It attempts to utilize ['SERVER_NAME'] instead of the recommended ['HTTP_HOST']. Visit the SERVER_NAME and SERVER_PORT on Pantheon dr. for more than data about ['HTTP_HOST'].


Last reviewed: Nov 04 2021

  Note

This section exists for reference purposes, equally SendGrid for WordPress has been deprecated as of July 13, 2021. Support can proceed to help with platform issues, but may non be able to troubleshoot SendGrid-specific bug.

Issue: The e-mail confirmation link sent from the SendGrid Subscription Widget goes to a redirect loop (encounter the open outcome on wp.org). The link created uses a URL GET parameter __sg_api, which has double underscores. The platform strips this type of parameter to improve caching performance.

Solution: Manually change the the parameter __sg_api to any variable (like sg_api) without double underscores as prefix in the following lines of sendgrid-email-delivery-simplified/lib/class-sendgrid-mc-optin.php:

  • Line 25: $vars[] = '__sg_api';
  • Line twoscore: if( isset( $wp->query_vars['__sg_api'] ) )
  • Line 146: $confirmation_link = site_url() . '/?__sg_api=1&token=' . $token;

  Warning

This workaround may potentially break once again with the next plugin update, and you will need to manually reapply the modification.


Site24x7

Last reviewed: Oct 20 2021

Outcome: Site24x7 is an uptime monitor that pings a site to detect stability and various functions. Each time a site is pinged, Site24x7 uses a unique user agent string or diverse IP addresses, which may falsely inflate traffic metrics with Pantheon.

Solution: Consider using New Relic (/new-relic) or Pingdom (/guides/pingdom-uptime-check) to monitor uptime. Pantheon maintains partnerships with these services and does not meter or bill requests from their user agents.


Slider Revolution

Concluding reviewed: Oct 01 2020

Result: Slider Revolution video backgrounds will not auto-play when added to a layer, and throws this error in the Javascript console:

            Failed to execute              'postMessage'              on              'DOMWindow'              :              The target origin              provided              (              'https://www.youtube.com'              )              does not match the recipient window's origin ('https:              /              /              <env>              -case.pantheonsite.io')              .                      

The plugin generates the site's URL using $_SERVER['SERVER_NAME'] instead of $_SERVER['HTTP_HOST']. Due to the dynamic nature of Pantheon's deject architecture, $_SERVER['HTTP_HOST'] is considered best practice.

Solution: Add the following line to wp-config.php:

                          $_SERVER              [              'SERVER_NAME'              ]              =              $_SERVER              [              'HTTP_HOST'              ]              ;                      

SmartCrawl Pro

Terminal reviewed: Oct 17 2018

Event: The sitemap URL linked by the SmartCrawl Pro plugin produces a 500 Internal Server Error on Test and Live environments. This results in a PHP error: course non found WP_Filesystem_Direct. See more details virtually the issue.

Solution: Ascertain FS_METHOD.

Alternative plugins that have an XML sitemap characteristic that works well on the platform include:

  • Google Sitemap Generator
  • Yoast

Timthumb

Result: Timthumb is no longer supported or maintained.


TubePress Pro

Issue: Sites running PHP version v.3 produce a WSOD after activating the TubePress Pro.

Solution: Upgrade your site'due south PHP version to v.5, 5.6, or vii.0.


Unbounce Landing Pages

Final reviewed: Feb thirteen 2019

Event: For the Unbounce Landing Pages plugin, clicking to call conversions aren't tracked even if the pages are non cached because the cookies are stripped.

Solution: Usually these type of problems can be solved if the cookie proper name tin can exist renamed with a prefix starting with STXKEY_, but it is inadvisable to alter the plugin straight. It is suggested by the Unbounce team to separate your Pantheon site domain (eg. example.com) and the Unbounce landing page in a subdomain (e.g., unbounce.example.com), considering your Unbounce landing pages tin can't live at exactly the aforementioned URL as your homepage. See the outlined solution here or go far bear upon with Unbounce support for more than assistance.


UNLOQ Two Cistron Authentication (2FA)

Concluding reviewed: Oct 08 2018

Event: This widget does not work on this domain error message shown after deploying the UNLOQ Two Factor Authentication (2FA) plugin across environments on Pantheon. This is because the API credentials used on the original surround are being used on a new environment URL, which is not allowed past the plugin. This is by design.

Solution: Manually change unloq_credentials cardinal in thewp_options table. Alternatively, yous tin can re-create an application by resetting your plugin installation (conciliate, delete entries, etc.).

For an alternative 2FA plugin, run across Secure Your Site with Two-Factor Authentication.


Unyson Theme Framework

Last reviewed: Oct 05 2018

Issue: The Unyson Theme Framework plugin has an internal extension organization which installs additional files aside from the plugin itself. Some of those extensions take an additional .gitignore file that prevents it from existence deployed to Examination and Live environment. See this GitHub upshot for more than data.

Solution: When using these Unyson Extensions, manually delete the .gitignore files in the corresponding locations:

Page builder:

  • wp-content/plugins/unyson/framework/extensions/shortcodes/.gitignore
  • wp-content/plugins/unyson/framework/extensions/shortcodes/extensions/page-builder/.gitignore

WordPress Shortcodes:

  • wp-content/plugins/unyson/framework/extensions/shortcodes/.gitignore

Translate Press:

  • wp-content/plugins/unyson/framework/extensions/shortcodes/.gitignore

Events:

  • wp-content/plugins/unyson/framework/extensions/events/.gitignore

Brizy:

  • wp-content/plugins/brizy/vendor/twig/twig/.gitignore

Visual Composer: Website Builder

Last reviewed: Aug 27 2018

Issue: The Visual Composer: Website Architect plugin fails to download additional assets during the internal plugin activation procedure on Examination and Live environments.

Solution 1: New sites, without existing Test and Live environments: If this plugin is installed and activated on a new site before the Test and Live environments are created, it will properly transfer all assets and database settings to the additional environments.

Solution 2: Sites with existing Test and Alive environments: To activate the plugin on sites with existing Test and Live environments, define FS_METHOD.


WebP Express

Terminal reviewed: January 22 2022

Event one: WebP Limited assumes write access to paths in the codebase that are write-but in non-development environments. The plugin uses is_dir to cheque for the path and a symlink to files/ does not resolve the issue.

Solution: Create a symlink for wp-content/webp-limited in the wp-content directory and and so run the following line of code:

                          ln -south ./uploads/webp-express ./webp-express          

Refer to the documentation on Using Extensions That Assume Write Access for more than information.

Issue two: Broken WebP images are served from the wrong directory.

Solution: Set the WebP Limited settings for Destination Structure to Image Roots in /wp-admin/options-full general.php?page=webp_express_settings_page and so clear the cache.


Atmospheric condition Station

Issue: The Atmospheric condition Station plugin uses php-intl, which is not currently supported by Pantheon.


WooCommerce

Last reviewed: Jan 10 2018

Issue: For the WooCommerce plugin, the "batch upload" process can fail during large uploads. The platform has a 120 2nd timeout limit for scripts, and large upload processes can hitting this limit.

Solution one: The suggested workaround is to clone the site locally, import the items, and so sync the database support to the platform.

Solution two: If you don't have a local re-create, SFTP into any surroundings's wp-content/uploads folder and upload the CSV file that you lot wish to import. Under the avant-garde settings of the WooCommerce import, specify the exact path where you uploaded the CSV file and import from there:

Enter the path to the CSV on the Import products from a CSV file page

In that location is a characteristic request on WooCommerce's GitHub folio for a WP-CLI import control which would be less prone to timeouts. To express your involvement to the developers, click the thumbs up on the characteristic request.


Issue two: A change introduced in WooCommerce 3.6.0 breaks template loading in environments with multiple application containers.

Solution: The result and a few workarounds possible are described in this WooCommerce Issue We hope this issue will issue in future code changes to WooCommerce so mitigations are not needed.


WooZone

Issue 1: The WooZone plugin checks WP_MEMORY_LIMIT, which defaults to 40MB, instead of ini_get('memory_limit'), creating this observe:

WooZone WP_MEMORY_LIMIT Error

Solution: Add the following line to wp-config.php:

                          define              (              'WP_MEMORY_LIMIT'              ,              '256M'              )              ;                      

Wordfence

Concluding reviewed: Jul 15 2020

Event: Wordfence assumes write access to several files in the codebase to shop configuation and log files.

Solution: Ready your environment before installing Wordfence with the proper symlinks and configuration files:

  Exports

This procedure uses Terminus commands. Before we begin, set the variables $site and $env in your terminal session to lucifer your site name and the Dev (or Multidev) surroundings:

                                                                                                  consign                SITE                =yoursitename                export                ENV                =dev            
  1. Fix your Dev (or Multidev) environs to Git connection fashion:

                                                                            terminus connectedness:set up                  $SITE                  .                  $ENV                  git                              
  2. If you haven't already, clone your site's codebase locally. You lot can go the path to your codebase from the Site Dashboard:

                                                                                              git                  clone ssh://codeserver.dev.xxx@codeserver.dev.xxx.drush.in:2222/~/repository.git my-site              
  3. From the codebase directory, create the following symlinks:

                                                                                                                                      ln                  -southward                  ../../files/private/wflogs ./wp-content/wflogs                  ln                  -s                  ../files/private/wordfence-waf.php ./wordfence-waf.php                  ln                  -due south                  ../files/private/.user.ini ./.user.ini              
  4. Open up pantheon.yml and add together a protected web path for .user.ini:

                                      protected_web_paths                  :                  -                  /.user.ini              
  5. Ready the FS_METHOD to direct in wp-config.php.

  6. Commit and push the changes to the platform:

                                                                                                                                      git                  add                  .                  git                  commit -m                  "Set up environment for Wordfence"                  git                  push button origin primary                  #Or Multidev branch proper noun                              
  7. Create the empty files wordfence-waf.php and .user.ini to push to the site. In this example, we're using touch to create them in the /tmp directory:

                                                                                              bear on                  /tmp/wordfence-waf.php /tmp/.user.ini              
  8. Connect to your environment over SFTP, create the required directories, and button the new files. Y'all don't need to switch the environment back to SFTP mode, since y'all're not changing anything in the codebase. Yous tin get the SFTP path from the Site Dashboard under Connection Info. Complete this pace in Dev, Test, and Alive Environments.

                                                                                              sftp                  -o                  Port                  =                  2222                  env.UUID@appserver.env.UUID.drush.in              
                                                                                                                                                                                                                                                              mkdir                  files/private                  mkdir                  files/private/wflogs put /tmp/wordfence-waf.php /files/individual Uploading /tmp/wordfence-waf.php to /files/private/wordfence-waf.php /tmp/wordfence-waf.php                  100%                  0                  0.0KB/s   00:00 put /tmp/.user.ini /files/private/ Uploading /tmp/.user.ini to /files/individual/.user.ini /tmp/.user.ini                  100%                  0                  0.0KB/due south   00:00                  exit                              
  9. Set the environment connection mode to SFTP, then install and activate Wordfence. Y'all can do both with Terminus:

                                                                                                                                                                                                                                                                                                                                                                                                                                                    terminus connection:set                  $SITE                  .                  $ENV                  sftp                  [notice]                  Enabled on-server development via SFTP                  for                  "env"                  terminus wp                  $SITE                  .                  $ENV                  -- plugin                  install                  --activate wordfence Installing Wordfence Security – Firewall                  &                  Malware Scan                  (                  7.iv.ix)                  Alert: Failed to create directory                  '/.wp-cli/cache/'                  :                  mkdir(                  ): Read-only                  file                  system. Downloading installation package from https://downloads.wordpress.org/plugin/wordfence.seven.4.9.nothing... Unpacking the package... Installing the plugin... Plugin installed successfully. Activating                  'wordfence'                  ... Warning: fopen(/lawmaking/wp-content/wflogs/rules.php): failed to                  open up                  stream: No such                  file                  or directory                  in                  /code/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  325                  Warning: flock(                  )                  expects parameter                  1                  to be resource, bool given                  in                  /lawmaking/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  326                  Alarm: include(/lawmaking/wp-content/wflogs/rules.php): failed to                  open up                  stream: No such                  file                  or directory                  in                  /code/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  328                  Warning: include(                  ): Failed opening                  '/code/wp-content/wflogs/rules.php'                  for                  inclusion                  (include_path=                  '.:/usr/share/pear:/usr/share/php'                  )                  in                  /code/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  328                  Warning: flock(                  )                  expects parameter                  one                  to be resource, bool given                  in                  /code/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  329                  Warning: fclose(                  )                  expects parameter                  1                  to be resource, bool given                  in                  /lawmaking/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/waf.php on line                  330                  Plugin                  'wordfence'                  activated. Success: Installed                  ane                  of                  ane                  plugins.                  [notice]                  Command: wordpress-docs-testbed.waf5 -- wp plugin                  install                  [Get out:                  0                  ]                              

    Y'all can safely ignore the alarm messages.

  10. Navigate to the Wordfence plugin in the site'due south WordPress Admin and Resume Installation if prompted, or click CLICK HERE TO CONFIGURE. The plugin requires that you lot download .user.ini to continue. As this file is blank at this signal, yous can delete it afterwards downloading.

Event: Occassionally, when configuring the Web Application Firewall (WAF), it can result in an "Error connecting to the database" message, in which the Wordfence plugin generates a bad wordfence-waf.php file. This results in two problems:

  • DIR is not providing the proper path for Wordfence
  • Wordfence cannot notice your database credentials

Solution: To address the first trouble y'all tin modify Wordfence to use relative paths. Alter the following code within wordfence-waf.php over SFTP from:

            if (file_exists(__DIR__.'/wp-content/plugins/wordfence/waf/bootstrap.php')) {     define("WFWAF_LOG_PATH", __DIR__.'/wp-content/wflogs/');     include_once __DIR__.'/wp-content/plugins/wordfence/waf/bootstrap.php'; }          

to:

            if (file_exists('../../code/wp-content/plugins/wordfence/waf/bootstrap.php')) {  ascertain("WFWAF_LOG_PATH", '../../code/wp-content/wflogs/');  include_once '../../code/wp-content/plugins/wordfence/waf/bootstrap.php'; }          

Next, add Wordfence constants in betwixt conditions in the wordfence-waf.php file. The file should resemble the following when complete:

            // Before removing this file, please verify the PHP ini setting `auto_prepend_file` does not point to this. // This file was the current value of auto_prepend_file during the Wordfence WAF installation  if (file_exists('/includes/prepend.php')) { 	include_once '/includes/prepend.php'; }  	define('WFWAF_DB_NAME', $_ENV['DB_NAME']); 	define('WFWAF_DB_USER', $_ENV['DB_USER']); 	define('WFWAF_DB_PASSWORD', $_ENV['DB_PASSWORD']); 	define('WFWAF_DB_HOST', $_ENV['DB_HOST'] . ':' . $_ENV['DB_PORT']); 	define('WFWAF_DB_CHARSET', 'utf8mb4'); 	ascertain('WFWAF_DB_COLLATE', '');   // Note the table prefix should reflect your WordPress awarding's tabular array prefix. Update accordingly. 	define('WFWAF_TABLE_PREFIX', 'wp_');  if (file_exists('../../code/wp-content/plugins/wordfence/waf/bootstrap.php')) { 	define("WFWAF_LOG_PATH", '../../lawmaking/wp-content/wflogs/'); 	include_once '../../lawmaking/wp-content/plugins/wordfence/waf/bootstrap.php'; }          

Farther Considerations with Wordfence: Utilizing data storage over files

If you experience degraded functioning with Wordfence active, using Wordfence's data storage option might be appropriate. Alter wordfence-waf.php to include the MySQLi storage engine abiding. Combined with the constants previously mentioned, the plugin will write to your database instead of your file system. If you do this, we recommend wrapping the constants in a condition that checks wp-config.php for a conflicting constant. The end result of your modified wordfence-waf.php should resemble the following:

            <?php // Before removing this file, please verify the PHP ini setting `auto_prepend_file` does not point to this. // This file was the current value of auto_prepend_file during the Wordfence WAF installation (Sun, 21 Nov 2021 23:twoscore:56 +0000)  if (file_exists('/includes/prepend.php')) { 	include_once '/includes/prepend.php'; }  if(! defined('WFWAF_STORAGE_ENGINE')) { 	// define WF constants if not set in wp-config.php 	define('WFWAF_STORAGE_ENGINE', 'mysqli'); 	ascertain('WFWAF_DB_NAME', $_ENV['DB_NAME']); 	define('WFWAF_DB_USER', $_ENV['DB_USER']); 	define('WFWAF_DB_PASSWORD', $_ENV['DB_PASSWORD']); 	define('WFWAF_DB_HOST', $_ENV['DB_HOST'] . ':' . $_ENV['DB_PORT']); 	define('WFWAF_DB_CHARSET', 'utf8mb4'); 	define('WFWAF_DB_COLLATE', '');   // Annotation this table prefix should reflect your WordPress application's table prefix. Update accordingly. 	define('WFWAF_TABLE_PREFIX', 'wp_'); }  if (file_exists('../../code/wp-content/plugins/wordfence/waf/bootstrap.php')) { 	define("WFWAF_LOG_PATH", '../../code/wp-content/wflogs/');; 	include_once '../../code/wp-content/plugins/wordfence/waf/bootstrap.php';          

Advantages: Customers have reported improved file organisation operation, while not having to compromise on Wordfence's features.

Disadvantages: Due to the nature of the plugin, binary logs and insertion queries will increase. Performance gains in one surface area may be sacrificed in some other.

How practise I confirm I am using information storage with Wordfence?

You tin ostend usage by navigating to the Wordfence bill of fare within your WordPress dashboard. Select Tools, on the the Tools folio click the Diagnostic tab. In the Diagnostic tab, below the Wordfence Firewal section, search for the "Active Storage Engine". This query will display either "File System" or "MySQLi". For this instance, choose "MySQLi". An additional table will be added called wp_wfwafconfig (assuming your table prefix is wp_) and queries will increment based on blocked traffic.


WordPress Download Manager

Issue 1: The WordPress Download Manager plugin wpdm-cache directory may grow excessively large with generated files.

Solution: We recommend that you research an alternative download manager plugin that fits your needs.


Issue 1: The WordPress Social Login plugin attempts to access PHP native sessions before WordPress has been bootstrapped, which prevents the Pantheon PHP native sessions plugin from being chosen. This leads to a 500 error when authenticating with external services.

Solution: While non recommended, you can add together the following lines to wp-config.php before the outset call to session_start:

                          if              (              defined              (              "PANTHEON_BINDING"              )              )              {              include_once              (              "/srv/bindings/"              .              PANTHEON_BINDING              .              "/code/wp-web log-header.php"              )              ;              }                      

Yous will need to make this change every time the plugin is updated.

Issue 2: This plugin creates a session on every page, which tin can forbid folio level caching.


WP Reset

Final reviewed: Nov 04 2021

Result 1: Some features of the WP Reset plugin can not be used on the Pantheon platform. Features such a file reset and restore do not piece of work considering staging and production environments are immutable, and backups help with restore and data rollbacks.

Solution: Use an alternate plugin that resets the WordPress database to the default installation.


WP Rocket

Final reviewed: October 19 2020

Issue: Every bit with other caching plugins, WP Rocket conflicts with Pantheon's Avant-garde Folio Cache. The caching characteristic can be disabled and then other features similar file optimization, media, etc. can be used side-by-side. Note that if not disabled, WP Rocket will motorcar-create the avant-garde-cache.php file.

Solution:

  1. In SFTP mode, install the WP Rocket plugin to the dev surroundings by uploading via SFTP or from the WP dashboard.

  2. Activate the plugin from the dashboard.

  3. Disable WP Rocket caching by finding the WP_CACHE value defined by WP-Rocket in wp-config.php, and setting it to faux:

                                      ascertain                  (                  'WP_CACHE'                  ,                  false                  )                  ;                              
  4. Optional on writable environments: The WP Rocket plugin automatically tries to set WP_CACHE to true in wp-config.php, if it is writable. To prevent this behavior on Dev and Multidev environments, you can optionally add together this helper plugin, which disables the attempted write.

Issue 2: WP Rocket assumes write access to read-only file paths in Pantheon.

Solution i: WP Rocket version three.v and higher allows setting a custom cache folder and config path:

                          define              (              'WP_ROCKET_CONFIG_PATH'              ,              $_SERVER              [              'DOCUMENT_ROOT'              ]              .              '/wp-content/uploads/wp-rocket-config/'              )              ;                      
                          define              (              'WP_ROCKET_CACHE_ROOT_PATH'              ,              $_SERVER              [              'DOCUMENT_ROOT'              ]              .              '/wp-content/uploads/new-path/cache/'              )              ;                      

Version 3.2 through 3.four allows setting simply the cache path, and still requires a symlink for the other paths (see below).

Solution ii: Create symlinks equally noted higher up.

After symlinking, make sure to manually create these folders in ALL environments.

            files/cache/wp-rocket files/cache/busting          

or

            code/wp-content/uploads/cache/wp-rocket code/wp-content/uploads/cache/busting          

WPBakery: Page Builder

Last reviewed: Sep 14 2018

Consequence: The Custom CSS and Design Options pages of the WPBakery: Page Builder plugin (?page=vc-custom_css, ?page=vc-color) try to create new files when saved. Due to bug related to wrong FS_METHOD, files are not created or saved in the expected folder, wp-content/uploads/js_composer.

Solution: Define FS_METHOD.


WPFront Notification Bar

Concluding reviewed: October twenty 2020

Issue: WPFront Notification Bar sends a set-cookie header in each response, which breaks caching on Pantheon'due south Global CDN. For case:

                                                                                                                                                                                                                                                                                                                                                                                                                                      scroll              -I https://www.case.com HTTP/2              200              cache-control: public, max-age=              600              content-blazon: text/html;              charset              =UTF-8 link:              <https://www.example.com/wp-json/>              ;              rel              =              "https://api.w.org/"              link:              <https://www.example.com/wp-json/wp/v2/pages/4                vii>              ;              rel              =              "alternate"              ;              blazon              =              "awarding/json"              link:              <https://www.example.com/>              ;              rel              =shortlink server: nginx              set-cookie: wpfront-notification-bar-landingpage=                1              strict-transport-security: max-age=              300              x-pantheon-styx-hostname: styx-fe1-a-789d66bff9-tztp6 x-styx-req-id: 7f93c166-53fe-11ea-803e-b26d7703e33f date: Tue,              xx              Oct              2020              21:sixteen:09 GMT 10-served-by: cache-mdw17356-MDW x-cache: MISS x-cache-hits:              0              ten-timer: S1603228567.134579,VS0,VE2847 vary: Accept-Encoding, Cookie historic period:              0              have-ranges: bytes via:              1.1              varnish          

Solution: You lot tin can utilize this patch to disable landing folio tracking and fix caching.


WP All Import / Export

Last reviewed: Jun 15 2020

Outcome 1: With WP All Import / Consign,large batch processes tin neglect if they take longer than the platform volition permit. Run into Timeouts on Pantheon for more information.

Solution: To avoid hitting a timeout, you tin can endeavor:

  • Clean upward temporary files

  • Lower the chunk size to fewer than 100 records:

    A screenshot showing the Chunk Size setting under Advanced Settings for WP Import All

  • Cron Processing Time Limit should exist set not more than 50 seconds to exist rubber with the 59 second platform PHP timeout.

  • Set the plugin to simply process one tape at a time:

    A screenshot of the Iterative, Piece-by-Piece processing option under Advanced Settings for WP Import All

The optimal number of records to process at once depends on how many post_metas and custom functions are associated with each mail imported.

  • Instead of importing one large file, information technology is best to set it upwardly equally recurring cron import as outlined in WP All Import's documentation.

  • If this will be a recurring import, increasing this number may help speed the completion of the task.

  • For busy sites while doing recurring cron, you lot can add cron slumber of at least 10 seconds to free upwards some php workers on recurring cron imports.

Issue two: Getting invalid file paths when importing / exporting on environments with multiple appservers similar test and live.

Solution: Upload the import file directly to the plugin's designated writable path wp-content/uploads/wpallimport/files/. When creating a new import using existing file, the file uploaded should announced in that location as an option.

Issue three: Upload count does not lucifer the import file.

Solution: Under WP All Import Settings:

  • Check the Enable Stream Reader
  • Cron Processing Time Limit should be set not more than 50 seconds
  • Clean up temporary files
  • Lower the chunk size to less than 100

WP-Ban

Last reviewed: Feb 23 2021

Issue: WP-Ban returns a 200-level response lawmaking to banned IPs. These responses are cached and count towards Site Visits. In improver, the Pantheon Global CDN may enshroud the result as successful, leading future visitors to think they've also been banned.

Solution: See the doc on how to Investigate and Remedy Traffic Events for culling methods.


WP Drift DB

Last reviewed: October 17 2018

Upshot: When using the WP Drift DB plugin on Test and Live environments, the Compatibility settings cannot be configured because this feature requires write access to wp-content/mu-plugins. This consequence prevents plugins from being included in DB exports and search-and-replace tasks.

Solution: The normal search-and-replace and DB export functions of this plugin work, but will leave all plugins disabled while in operation. If a specific plugin is required to remain active during the DB export and search-and-replace operations, add together a filter for it equally described in the plugin's debugging page.


WPML - The WordPress Multilingual Plugin

Last reviewed: Oct 22 2019

Consequence 1: Locking an environment prevents the WPML - The WordPress Multilingual Plugin plugin from operating and returns the post-obit error: Information technology looks like languages per directories will not function.

Solution: Make the environment public within the Site Dashboard. For details, see Security on the Pantheon Dashboard.


Issue 2: When registering the plugin, accessing /wp-admin/plugin-install.php?tab=commercial returns "Sorry, y'all are not immune to access this page".

Solution: Actuate the plugin individually for each environment you lot want to employ the plugin with, as it requires a separate key for each domain. Instead of clicking on Purchase a subscription or enter an existing site fundamental, use the Configure WMPL push:

The Configure WMPL Button

You tin can likewise add the registration keys to wp-config.php:

                          define              (              'OTGS_INSTALLER_SITE_KEY_WPML'              ,              'your-site-key'              )              ;                      

Larn more in the WPML Guide.


Event 3: Upon activating WPML String Translation plugin, you may run into this error:

WPML String Translation is attempting to write .mo files with translations to binder:

/srv/bindings/***/code/wp-content/languages

This binder appears to be not writable. This is blocking translation for strings from actualization on the site. To resolve this, please contact your hosting company and asking that they make that folder writable. For more details, see WPML's documentation on troubleshooting .mo files generation.

Solution one:

  1. In wp-config.php, add the post-obit above the line /* That'due south all, cease editing! Happy Pressing. */:

                                      define                  (                  'WP_LANG_DIR'                  ,                  $_SERVER                  [                  'HOME'                  ]                  .                  '/files/languages'                  )                  ;                              
  2. Create the languages directory inside /files for each environment.

  3. Define the FS_METHOD in the wp-config.

Solution 2:

  1. Create a symlink for wp-content/languages pointing to wp-content/uploads/languages. See Using Extensions That Assume Write Admission for more data.

  2. Define the FS_METHOD in the wp-config.


Yoast SEO

Last reviewed: Jun 12 2018

Outcome: The redirects for the Yoast SEO plugin setting will notice ii options for redirect methods, "PHP", and "Web Server". The Spider web Server option expects write access to the nginx.conf file, which is non writable on Pantheon.

Solution: Only employ the "PHP" redirect method.


YotuWP Easy YouTube Embed

Last reviewed: Nov 27 2019

Effect: The YotuWP Like shooting fish in a barrel YouTube Embed plugin asks for SFTP credentials after installation.

Solution: Ascertain FS_METHOD.


WordPress Themes

Self-Updating Themes

Several WordPress themes, including Jupiter, Nanosoft, and Uncode, present a form requesting FTP credentials in order to automatically update its components. This will announced on Dev, Test and Live environments and can exist hidden with CSS, but is still nowadays.

The grade tin can be disabled past calculation the following to wp-config.php, above the line /* That's all, stop editing! Happy Pressing. */:

                          /** Disable theme FTP form */              ascertain              (              'FS_METHOD'              ,              'directly'              )              ;              define              (              'FS_CHMOD_DIR'              ,              (              0755              &              ~              umask              (              )              )              )              ;              define              (              'FS_CHMOD_FILE'              ,              (              0755              &              ~              umask              (              )              )              )              ;              define              (              'FTP_BASE'              ,              __DIR__              )              ;              define              (              'FTP_CONTENT_DIR'              ,              __DIR__              .              '/wp-content/'              )              ;              define              (              'FTP_PLUGIN_DIR'              ,              __DIR__              .              '/wp-content/plugins/'              )              ;                      

Uncode

Last reviewed: Jun xix 2019

Issue: The Uncode theme throws a PHP Fatal error in its settings folio for Dev's and Multidev's Git way, Test and Alive.

Solution: This theme assumes write access to theme folders wp-content/themes/uncode/core/assets/css and wp-content/themes/uncode/library/css for it to work properly in git manner. For boosted details, encounter Using Extensions That Presume Write Access.


WordPress Functions

add_management_page()

Outcome: For the add_management_page(), adding a submenu page to the Tools main menu using WordPress roles and capabilities that would read or write files to cadre, themes, or plugins, is not supported.

For case, the install_plugins capability isn't present on the Test or Live environment, therefore menus created with it will not brandish. For instance:

            hook              =              add_management_page              (              'My WP Tool Page'              ,              'My WP Tool'              ,              'install_plugins'              ,              'mywptool'              ,              array              (              $this              ,              'admin_page'              )              ,              ''              )              ;              add_action              (              "load-                  $hook                "              ,              assortment              (              $this              ,              'admin_page_load'              )              )              ;                      

This is because write permissions are restricted in Examination and Alive per the Pantheon Workflow.

Solution: You tin can apply another capability such every bit read_private_posts instead.

The list of WordPress roles and capabilities that should not exist relied upon include:

  • update_core
  • update_plugins
  • update_themes
  • install_plugins
  • install_themes
  • upload_plugins
  • upload_themes
  • delete_themes
  • delete_plugins
  • edit_plugins
  • edit_themes

wp_filesystem->get_contents()

Issue: With wp_filesystem->get_contents(), the function wp_filesystem->get_contents() tin can fail when an environment is in Git mode (as Test and Alive always are) because information technology is enlightened of filesystem-level permissions which are restricted in this mode.

Solution: As described in this StackExchange answer, for cases where file ownership doesn't matter this office could be replaced with file_get_contents(). This is true of most cases where the file in question is only being read, not written to.

Other Problems

Plugins and themes volition non piece of work on Pantheon if they:

  • Require Apache.
  • Require customized .htaccess files.
  • Need to change Nginx configuration files.
  • Require PostgreSQL or other not-MySQL uniform databases.

mintonspond1974.blogspot.com

Source: https://pantheon.io/docs/plugins-known-issues/

0 Response to "Cannot Read Property 'is_mobile' of Undefined Revolution Extension Video"

Postar um comentário

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel