-
Notifications
You must be signed in to change notification settings - Fork 224
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add optimization for Contact Form 7 (#6215)
Co-authored-by: Ahmed Saed <[email protected]> Co-authored-by: Rémy Perona <[email protected]> Co-authored-by: Weston Ruter <[email protected]> Co-authored-by: WordPress Fan <[email protected]>
- Loading branch information
1 parent
c1bce62
commit f588be9
Showing
3 changed files
with
65 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
<?php | ||
namespace WP_Rocket\ThirdParty\Plugins; | ||
|
||
use WP_Rocket\Event_Management\Subscriber_Interface; | ||
|
||
class ContactForm7 implements Subscriber_Interface { | ||
|
||
/** | ||
* Required CF6 version. | ||
* | ||
* Version in which the wpcf7_shortcode_callback action was introduced. | ||
* | ||
* @var string | ||
*/ | ||
const REQUIRED_CF7_VERSION = '5.8.1'; | ||
|
||
/** | ||
* Subscribed events. | ||
*/ | ||
public static function get_subscribed_events() { | ||
return [ | ||
'template_redirect' => [ 'maybe_optimize_contact_form_7', 10 ], | ||
]; | ||
} | ||
|
||
/** | ||
* Optimize ContactForm7 scripts. | ||
*/ | ||
public function maybe_optimize_contact_form_7() { | ||
// The wpcf7_shortcode_callback action was added in CF7 version 5.8.1. | ||
if ( ! defined( 'WPCF7_VERSION' ) || version_compare( WPCF7_VERSION, self::REQUIRED_CF7_VERSION, '<' ) ) { | ||
return; | ||
} | ||
|
||
// Force scripts and styles to not load by default. | ||
add_filter( 'wpcf7_load_js', '__return_false', PHP_INT_MAX ); | ||
add_filter( 'wpcf7_load_css', '__return_false', PHP_INT_MAX ); | ||
|
||
// Conditionally enqueue scripts. | ||
add_action( 'wpcf7_shortcode_callback', [ $this, 'conditionally_enqueue_scripts' ] ); | ||
add_action( 'wpcf7_shortcode_callback', [ $this, 'conditionally_enqueue_styles' ] ); | ||
} | ||
|
||
/** | ||
* Enqueue scripts if not already enqueued. | ||
*/ | ||
public function conditionally_enqueue_scripts() { | ||
if ( ! did_action( 'wpcf7_enqueue_scripts' ) ) { // Prevent double-enqueueing when multiple forms present. | ||
wpcf7_enqueue_scripts(); | ||
} | ||
} | ||
|
||
/** | ||
* Enqueue styles if not already enqueued. | ||
*/ | ||
public function conditionally_enqueue_styles() { | ||
if ( ! did_action( 'wpcf7_enqueue_styles' ) ) { // Prevent double-enqueueing when multiple forms present. | ||
wpcf7_enqueue_styles(); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters