PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 12.5
Jetpack – WP Security, Backup, Speed, & Growth v12.5
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / modules / contact-form.php

contact-form.php in Jetpack – WP Security, Backup, Speed, & Growth 12.5, at modules/contact-form.php

156 lines 7.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Contact form module.
4 *
5 * @package automattic/jetpack
6 */
7
8 use Automattic\Jetpack\Forms\Jetpack_Forms;
9
10 /**
11 * Module Name: Contact Form
12 * Module Description: Add a customizable contact form to any post or page using the Jetpack Form Block.
13 * Sort Order: 15
14 * Recommendation Order: 14
15 * First Introduced: 1.3
16 * Requires Connection: No
17 * Auto Activate: Yes
18 * Module Tags: Other
19 * Feature: Writing
20 * Additional Search Queries: contact, form, grunion, feedback, submission, contact form, email, feedback, contact form plugin, custom form, custom form plugin, form builder, forms, form maker, survey, contact by jetpack, contact us, forms free
21 */
22
23 /**
24 * Whether to load the newer Jetpack Forms package.
25 *
26 * @use add_filter( 'jetpack_contact_form_use_package', '__return_true' );
27 * @module contact-form
28 *
29 * @since 11.8
30 *
31 * @param bool $load_contact_form_package Load Jetpack Forms package. Default to false.
32 */
33 if ( apply_filters( 'jetpack_contact_form_use_package', true ) ) {
34 Jetpack_Forms::load_contact_form();
35 return true; // Not returning true will cause the module to become deactivated.
36 }
37
38 require_once __DIR__ . '/contact-form/grunion-contact-form.php';
39
40 /*
41 * Filters if the new Contact Form Editor View should be used.
42 *
43 * A temporary filter to disable the new Editor View for the older UI.
44 * Please note this filter and the old UI will be removed in the future.
45 * Expected to be removed in Jetpack 5.8 or if a security issue merits removing the old code sooner.
46 *
47 * @since 5.2.0
48 *
49 * @param boolean $view Use new Editor View. Default true.
50 */
51 if ( is_admin() && apply_filters( 'tmp_grunion_allow_editor_view', true ) ) {
52 require_once __DIR__ . '/contact-form/grunion-editor-view.php';
53 }
54
55 /**
56 * Register Jetpack Form patterns
57 */
58 function jetpack_form_register_pattern() {
59 $category_slug = 'forms';
60 register_block_pattern_category( $category_slug, array( 'label' => __( 'Forms', 'jetpack' ) ) );
61
62 $patterns = array(
63 'contact-form' => array(
64 'title' => 'Contact Form',
65 'blockTypes' => array( 'jetpack/contact-form' ),
66 'categories' => array( $category_slug ),
67 'content' => '<!-- wp:jetpack/contact-form {"style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
68 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
69 <!-- wp:jetpack/field-name {"required":true} /-->
70 <!-- wp:jetpack/field-email {"required":true} /-->
71 <!-- wp:jetpack/field-textarea /-->
72 <!-- wp:jetpack/button {"element":"button","text":"Contact Us","lock":{"remove":true}} /-->
73 </div>
74 <!-- /wp:jetpack/contact-form -->',
75 ),
76 'newsletter-form' => array(
77 'title' => 'Newsletter Subscription Form',
78 'blockTypes' => array( 'jetpack/contact-form' ),
79 'categories' => array( $category_slug ),
80 'content' => '<!-- wp:jetpack/contact-form {"style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
81 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
82 <!-- wp:jetpack/field-name {"required":true} /-->
83 <!-- wp:jetpack/field-email {"required":true} /-->
84 <!-- wp:jetpack/field-consent /-->
85 <!-- wp:jetpack/button {"element":"button","text":"Subscribe","lock":{"remove":true}} /-->
86 </div>
87 <!-- /wp:jetpack/contact-form -->',
88 ),
89 'rsvp-form' => array(
90 'title' => 'RSVP Form',
91 'blockTypes' => array( 'jetpack/contact-form' ),
92 'categories' => array( $category_slug ),
93 'content' => '<!-- wp:jetpack/contact-form {"subject":"A new RSVP from your website","style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
94 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
95 <!-- wp:jetpack/field-name {"required":true} /-->
96 <!-- wp:jetpack/field-email {"required":true} /-->
97 <!-- wp:jetpack/field-radio {"label":"Attending?","required":true,"options":["Yes","No"]} /-->
98 <!-- wp:jetpack/field-textarea {"label":"Other Details"} /-->
99 <!-- wp:jetpack/button {"element":"button","text":"Send RSVP","lock":{"remove":true}} /-->
100 </div>
101 <!-- /wp:jetpack/contact-form -->',
102 ),
103 'registration-form' => array(
104 'title' => 'Registration Form',
105 'blockTypes' => array( 'jetpack/contact-form' ),
106 'categories' => array( $category_slug ),
107 'content' => '<!-- wp:jetpack/contact-form {"subject":"A new registration from your website","style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
108 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
109 <!-- wp:jetpack/field-name {"required":true} /-->
110 <!-- wp:jetpack/field-email {"required":true} /-->
111 <!-- wp:jetpack/field-telephone {"label":"Phone Number"} /-->
112 <!-- wp:jetpack/field-select {"label":"How did you hear about us?","options":["Search Engine","Social Media","TV","Radio","Friend or Family"]} /-->
113 <!-- wp:jetpack/field-textarea {"label":"Other Details"} /-->
114 <!-- wp:jetpack/button {"element":"button","text":"Send","lock":{"remove":true}} /-->
115 </div>
116 <!-- /wp:jetpack/contact-form -->',
117 ),
118 'appointment-form' => array(
119 'title' => 'Appointment Form',
120 'blockTypes' => array( 'jetpack/contact-form' ),
121 'categories' => array( $category_slug ),
122 'content' => '<!-- wp:jetpack/contact-form {"subject":"A new appointment booked from your website","style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
123 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
124 <!-- wp:jetpack/field-name {"required":true} /-->
125 <!-- wp:jetpack/field-email {"required":true} /-->
126 <!-- wp:jetpack/field-telephone {"required":true} /-->
127 <!-- wp:jetpack/field-date {"label":"Date","required":true} /-->
128 <!-- wp:jetpack/field-radio {"label":"Time","required":true,"options":["Morning","Afternoon"]} /-->
129 <!-- wp:jetpack/field-textarea {"label":"Notes"} /-->
130 <!-- wp:jetpack/button {"element":"button","text":"Book Appointment","lock":{"remove":true}} /-->
131 </div>
132 <!-- /wp:jetpack/contact-form -->',
133 ),
134 'feedback-form' => array(
135 'title' => 'Feedback Form',
136 'blockTypes' => array( 'jetpack/contact-form' ),
137 'categories' => array( $category_slug ),
138 'content' => '<!-- wp:jetpack/contact-form {"subject":"New feedback received from your website","style":{"spacing":{"padding":{"top":"16px","right":"16px","bottom":"16px","left":"16px"}}}} -->
139 <div class="wp-block-jetpack-contact-form" style="padding-top:16px;padding-right:16px;padding-bottom:16px;padding-left:16px">
140 <!-- wp:jetpack/field-name {"required":true} /-->
141 <!-- wp:jetpack/field-email {"required":true} /-->
142 <!-- wp:jetpack/field-radio {"label":"Please rate our website","required":true,"options":["1 - Very Bad","2 - Poor","3 - Average","4 - Good","5 - Excellent"]} /-->
143 <!-- wp:jetpack/field-textarea {"label":"How could we improve?"} /-->
144 <!-- wp:jetpack/button {"element":"button","text":"Send Feedback","lock":{"remove":true}} /-->
145 </div>
146 <!-- /wp:jetpack/contact-form -->',
147 ),
148 );
149
150 foreach ( $patterns as $name => $pattern ) {
151 register_block_pattern( $name, $pattern );
152 }
153 }
154
155 add_action( 'init', 'jetpack_form_register_pattern' );
156