Version Description
- Dashboard notices and Messages tab improvements.
Download this release
Release Info
Developer | happyforms |
Plugin | Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms |
Version | 1.21.1 |
Comparing to | |
See all releases |
Code changes from version 1.21.0 to 1.21.1
- core/assets/css/customize.css +4 -0
- core/classes/class-form-messages.php +15 -1
- core/classes/class-wp-customize-form-manager.php +17 -19
- happyforms.php +2 -2
- inc/assets/jsx/build/admin/dashboard-modals.asset.php +1 -1
- inc/assets/jsx/build/admin/dashboard-modals.js +146 -211
- inc/assets/jsx/build/admin/dashboard-modals.js.map +1 -1
- inc/assets/jsx/src/admin/dashboard-modals.js +2 -2
- inc/classes/class-happyforms.php +14 -10
- languages/happyforms.pot +100 -105
- readme.txt +11 -1
core/assets/css/customize.css
CHANGED
@@ -199,6 +199,10 @@ p.description a {
|
|
199 |
margin-left: 5px;
|
200 |
}
|
201 |
|
|
|
|
|
|
|
|
|
202 |
.customize-control-email-parts-list_dummy {
|
203 |
display: flex;
|
204 |
flex-wrap: wrap;
|
199 |
margin-left: 5px;
|
200 |
}
|
201 |
|
202 |
+
.customize-control.customize-control-checkbox_dummy#customize-control-block_emails label a {
|
203 |
+
margin-left: 0px;
|
204 |
+
}
|
205 |
+
|
206 |
.customize-control-email-parts-list_dummy {
|
207 |
display: flex;
|
208 |
flex-wrap: wrap;
|
core/classes/class-form-messages.php
CHANGED
@@ -103,9 +103,23 @@ class HappyForms_Form_Messages {
|
|
103 |
'group_title' => __( 'Buttons', 'happyforms' ),
|
104 |
'group_description' => __( 'These messages are shown to submitters as they fill out the form to help them trigger an action.', 'happyforms' ),
|
105 |
),
|
106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
'type' => 'group_end',
|
108 |
),
|
|
|
109 |
4001 => array (
|
110 |
'type' => 'group_start',
|
111 |
'group_type' => 'group',
|
103 |
'group_title' => __( 'Buttons', 'happyforms' ),
|
104 |
'group_description' => __( 'These messages are shown to submitters as they fill out the form to help them trigger an action.', 'happyforms' ),
|
105 |
),
|
106 |
+
|
107 |
+
2258 => array (
|
108 |
+
'type' => 'group_end',
|
109 |
+
),
|
110 |
+
|
111 |
+
2260 => array (
|
112 |
+
'type' => 'group_start',
|
113 |
+
'group_type' => 'group',
|
114 |
+
'group_id' => 'messages-view-links',
|
115 |
+
'group_title' => __( 'Links', 'happyforms' ),
|
116 |
+
'group_description' => __( 'These messages are shown to submitters as they fill out the form to help them go to a new page or move somewhere on the same page.', 'happyforms' ),
|
117 |
+
),
|
118 |
+
|
119 |
+
2279 => array (
|
120 |
'type' => 'group_end',
|
121 |
),
|
122 |
+
|
123 |
4001 => array (
|
124 |
'type' => 'group_start',
|
125 |
'group_type' => 'group',
|
core/classes/class-wp-customize-form-manager.php
CHANGED
@@ -156,23 +156,21 @@ class HappyForms_WP_Customize_Form_Manager {
|
|
156 |
}
|
157 |
|
158 |
$is_new_form = ( isset( $form_data['ID'] ) && 0 === $form_data['ID'] );
|
159 |
-
|
160 |
-
|
161 |
-
$
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
)
|
175 |
-
);
|
176 |
|
177 |
wp_send_json_success( $result );
|
178 |
}
|
@@ -239,11 +237,11 @@ class HappyForms_WP_Customize_Form_Manager {
|
|
239 |
foreach( $parts_data as $part_data ) {
|
240 |
$template = happyforms_get_form_part( $part_data, $form_data );
|
241 |
$template = stripslashes( $template );
|
242 |
-
|
243 |
ob_start();
|
244 |
echo( $template );
|
245 |
$html = ob_get_clean();
|
246 |
-
|
247 |
$parts_html[$part_data['id']] = $html;
|
248 |
}
|
249 |
|
156 |
}
|
157 |
|
158 |
$is_new_form = ( isset( $form_data['ID'] ) && 0 === $form_data['ID'] );
|
159 |
+
if ( $is_new_form ) {
|
160 |
+
$notice_id = 'happyforms_form_created';
|
161 |
+
$notice_content = __( 'To publish your new form, add a <i>Forms</i> block anywhere your theme allows blocks to be added. If you\'re using an older theme or page builder, you might instead need to copy the form\'s shortcode and paste it into your site as your theme\'s author recommends.', 'happyforms' );
|
162 |
+
|
163 |
+
happyforms_get_admin_notices()->register(
|
164 |
+
$notice_id,
|
165 |
+
$notice_content,
|
166 |
+
array(
|
167 |
+
'type' => 'info',
|
168 |
+
'dismissible' => true,
|
169 |
+
'screen' => array( 'edit-happyform' ),
|
170 |
+
'one-time' => true,
|
171 |
+
)
|
172 |
+
);
|
173 |
+
}
|
|
|
|
|
174 |
|
175 |
wp_send_json_success( $result );
|
176 |
}
|
237 |
foreach( $parts_data as $part_data ) {
|
238 |
$template = happyforms_get_form_part( $part_data, $form_data );
|
239 |
$template = stripslashes( $template );
|
240 |
+
|
241 |
ob_start();
|
242 |
echo( $template );
|
243 |
$html = ob_get_clean();
|
244 |
+
|
245 |
$parts_html[$part_data['id']] = $html;
|
246 |
}
|
247 |
|
happyforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: Form builder to get in touch with visitors, grow your email list and collect payments.
|
7 |
* Author: Happyforms
|
8 |
-
* Version: 1.21.
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
@@ -22,7 +22,7 @@ if ( defined( 'HAPPYFORMS_UPGRADE_VERSION' ) ) {
|
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
-
define( 'HAPPYFORMS_VERSION', '1.21.
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_get_version' ) ):
|
28 |
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: Form builder to get in touch with visitors, grow your email list and collect payments.
|
7 |
* Author: Happyforms
|
8 |
+
* Version: 1.21.1
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
+
define( 'HAPPYFORMS_VERSION', '1.21.1' );
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_get_version' ) ):
|
28 |
|
inc/assets/jsx/build/admin/dashboard-modals.asset.php
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<?php return array('dependencies' => array('wp-components', 'wp-element', 'wp-i18n'
|
1 |
+
<?php return array('dependencies' => array('wp-components', 'wp-element', 'wp-i18n'), 'version' => '2ee486410cb3564c6e1c');
|
inc/assets/jsx/build/admin/dashboard-modals.js
CHANGED
@@ -1,108 +1,23 @@
|
|
1 |
-
/******/ (
|
2 |
-
/******/
|
3 |
-
/******/ var
|
4 |
-
/******/
|
5 |
-
/******/ // The require function
|
6 |
-
/******/ function __webpack_require__(moduleId) {
|
7 |
-
/******/
|
8 |
-
/******/ // Check if module is in cache
|
9 |
-
/******/ if(installedModules[moduleId]) {
|
10 |
-
/******/ return installedModules[moduleId].exports;
|
11 |
-
/******/ }
|
12 |
-
/******/ // Create a new module (and put it into the cache)
|
13 |
-
/******/ var module = installedModules[moduleId] = {
|
14 |
-
/******/ i: moduleId,
|
15 |
-
/******/ l: false,
|
16 |
-
/******/ exports: {}
|
17 |
-
/******/ };
|
18 |
-
/******/
|
19 |
-
/******/ // Execute the module function
|
20 |
-
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
21 |
-
/******/
|
22 |
-
/******/ // Flag the module as loaded
|
23 |
-
/******/ module.l = true;
|
24 |
-
/******/
|
25 |
-
/******/ // Return the exports of the module
|
26 |
-
/******/ return module.exports;
|
27 |
-
/******/ }
|
28 |
-
/******/
|
29 |
-
/******/
|
30 |
-
/******/ // expose the modules object (__webpack_modules__)
|
31 |
-
/******/ __webpack_require__.m = modules;
|
32 |
-
/******/
|
33 |
-
/******/ // expose the module cache
|
34 |
-
/******/ __webpack_require__.c = installedModules;
|
35 |
-
/******/
|
36 |
-
/******/ // define getter function for harmony exports
|
37 |
-
/******/ __webpack_require__.d = function(exports, name, getter) {
|
38 |
-
/******/ if(!__webpack_require__.o(exports, name)) {
|
39 |
-
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
40 |
-
/******/ }
|
41 |
-
/******/ };
|
42 |
-
/******/
|
43 |
-
/******/ // define __esModule on exports
|
44 |
-
/******/ __webpack_require__.r = function(exports) {
|
45 |
-
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
46 |
-
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
47 |
-
/******/ }
|
48 |
-
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
49 |
-
/******/ };
|
50 |
-
/******/
|
51 |
-
/******/ // create a fake namespace object
|
52 |
-
/******/ // mode & 1: value is a module id, require it
|
53 |
-
/******/ // mode & 2: merge all properties of value into the ns
|
54 |
-
/******/ // mode & 4: return value when already ns object
|
55 |
-
/******/ // mode & 8|1: behave like require
|
56 |
-
/******/ __webpack_require__.t = function(value, mode) {
|
57 |
-
/******/ if(mode & 1) value = __webpack_require__(value);
|
58 |
-
/******/ if(mode & 8) return value;
|
59 |
-
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
60 |
-
/******/ var ns = Object.create(null);
|
61 |
-
/******/ __webpack_require__.r(ns);
|
62 |
-
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
63 |
-
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
64 |
-
/******/ return ns;
|
65 |
-
/******/ };
|
66 |
-
/******/
|
67 |
-
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
68 |
-
/******/ __webpack_require__.n = function(module) {
|
69 |
-
/******/ var getter = module && module.__esModule ?
|
70 |
-
/******/ function getDefault() { return module['default']; } :
|
71 |
-
/******/ function getModuleExports() { return module; };
|
72 |
-
/******/ __webpack_require__.d(getter, 'a', getter);
|
73 |
-
/******/ return getter;
|
74 |
-
/******/ };
|
75 |
-
/******/
|
76 |
-
/******/ // Object.prototype.hasOwnProperty.call
|
77 |
-
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
78 |
-
/******/
|
79 |
-
/******/ // __webpack_public_path__
|
80 |
-
/******/ __webpack_require__.p = "";
|
81 |
-
/******/
|
82 |
-
/******/
|
83 |
-
/******/ // Load entry module and return exports
|
84 |
-
/******/ return __webpack_require__(__webpack_require__.s = "./build/inc/assets/jsx/src/admin/dashboard-modals.js");
|
85 |
-
/******/ })
|
86 |
-
/************************************************************************/
|
87 |
-
/******/ ({
|
88 |
|
89 |
/***/ "./build/core/assets/jsx/src/admin/dashboard-modals.js":
|
90 |
/*!*************************************************************!*\
|
91 |
!*** ./build/core/assets/jsx/src/admin/dashboard-modals.js ***!
|
92 |
\*************************************************************/
|
93 |
-
|
94 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
95 |
|
96 |
-
"use strict";
|
97 |
__webpack_require__.r(__webpack_exports__);
|
98 |
-
/* harmony
|
99 |
-
/* harmony
|
100 |
-
/* harmony
|
101 |
-
/* harmony import */ var
|
102 |
-
/* harmony import */ var
|
103 |
-
/* harmony import */ var
|
104 |
-
/* harmony import */ var
|
105 |
-
/* harmony import */ var
|
|
|
106 |
|
107 |
|
108 |
|
@@ -113,55 +28,145 @@ __webpack_require__.r(__webpack_exports__);
|
|
113 |
* Modal handler class
|
114 |
*
|
115 |
*/
|
116 |
-
|
117 |
-
/* harmony default export */ __webpack_exports__["default"] = (function ($, settings) {
|
118 |
const {
|
119 |
render
|
120 |
} = wp.element;
|
|
|
121 |
/**
|
122 |
*
|
123 |
* Modal wrapper
|
124 |
*
|
125 |
*/
|
126 |
-
|
127 |
const ModalProvider = props => {
|
128 |
-
return
|
129 |
};
|
130 |
-
|
131 |
return class DashboardModals {
|
|
|
132 |
constructor() {
|
133 |
-
_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(this, "area", null);
|
134 |
-
|
135 |
this.area = document.getElementById('happyforms-modals-area');
|
136 |
}
|
137 |
-
|
138 |
openModal(modal) {
|
139 |
-
render(
|
140 |
modal: modal
|
141 |
}), this.area);
|
142 |
}
|
143 |
-
|
144 |
closeModal(modal) {
|
145 |
-
render(
|
146 |
$.post(ajaxurl, {
|
147 |
action: settings.actionModalDismiss,
|
148 |
id: modal
|
149 |
});
|
150 |
}
|
151 |
-
|
152 |
};
|
153 |
-
}
|
154 |
|
155 |
/***/ }),
|
156 |
|
157 |
-
/***/ "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
/*!************************************************************!*\
|
159 |
!*** ./build/inc/assets/jsx/src/admin/dashboard-modals.js ***!
|
160 |
\************************************************************/
|
161 |
-
/*! no exports provided */
|
162 |
-
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
163 |
-
|
164 |
-
"use strict";
|
165 |
__webpack_require__.r(__webpack_exports__);
|
166 |
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
|
167 |
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
|
@@ -175,7 +180,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
175 |
|
176 |
|
177 |
|
178 |
-
|
179 |
(function ($, settings) {
|
180 |
/**
|
181 |
*
|
@@ -184,12 +188,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
184 |
*/
|
185 |
const OnboardingModal = props => {
|
186 |
const imageURL = `${settings.pluginURL}/inc/assets/img/welcome.svg`;
|
187 |
-
const [email, setEmail] =
|
188 |
-
|
189 |
const onEmailChange = e => {
|
190 |
setEmail(e.target.value);
|
191 |
};
|
192 |
-
|
193 |
const onRequestClose = () => {
|
194 |
$.post(ajaxurl, {
|
195 |
action: settings.onboardingModalAction,
|
@@ -198,156 +200,89 @@ __webpack_require__.r(__webpack_exports__);
|
|
198 |
});
|
199 |
return props.onRequestClose();
|
200 |
};
|
201 |
-
|
202 |
-
return Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["createElement"])(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__["Guide"], {
|
203 |
onFinish: onRequestClose,
|
204 |
className: "happyforms-modal happyforms-modal--onboarding",
|
205 |
pages: [{
|
206 |
-
image:
|
207 |
src: imageURL
|
208 |
})),
|
209 |
-
content:
|
210 |
className: "happyforms-modal__header"
|
211 |
-
},
|
212 |
className: "happyforms-modal__body"
|
213 |
-
},
|
214 |
type: "email",
|
215 |
value: email,
|
216 |
onChange: onEmailChange,
|
217 |
autoFocus: true
|
218 |
-
})),
|
219 |
className: "happyforms-modal__footer"
|
220 |
-
},
|
221 |
isPrimary: true,
|
222 |
onClick: onRequestClose,
|
223 |
-
text:
|
224 |
}))))
|
225 |
}]
|
226 |
});
|
227 |
};
|
|
|
228 |
/**
|
229 |
*
|
230 |
* Upgrade modal
|
231 |
*
|
232 |
*/
|
233 |
-
|
234 |
-
|
235 |
const UpgradeModal = props => {
|
236 |
const imageURL = `${settings.pluginURL}/inc/assets/img/upgrade.svg`;
|
237 |
-
return
|
238 |
onFinish: props.onRequestClose,
|
239 |
className: "happyforms-modal happyforms-modal--upgrade",
|
240 |
pages: [{
|
241 |
-
image:
|
242 |
src: imageURL
|
243 |
})),
|
244 |
-
content:
|
245 |
className: "happyforms-modal__header"
|
246 |
-
},
|
247 |
className: "happyforms-modal__body"
|
248 |
-
},
|
249 |
className: "happyforms-modal__footer"
|
250 |
-
},
|
251 |
isPrimary: true,
|
252 |
href: "https://happyforms.io/upgrade",
|
253 |
target: "_blank",
|
254 |
-
text:
|
255 |
-
}),
|
256 |
isSecondary: true,
|
257 |
onClick: props.onRequestClose,
|
258 |
-
text:
|
259 |
}))))
|
260 |
}]
|
261 |
});
|
262 |
};
|
263 |
-
|
264 |
-
const DashboardModalsBaseClass = Object(_happyforms_core_jsx_src_admin_dashboard_modals__WEBPACK_IMPORTED_MODULE_1__["default"])($, settings);
|
265 |
-
|
266 |
class DashboardModalsClass extends DashboardModalsBaseClass {
|
267 |
openOnboardingModal() {
|
268 |
-
var modal =
|
269 |
onRequestClose: this.closeModal.bind(this, 'onboarding'),
|
270 |
status: settings.trackingStatus
|
271 |
});
|
272 |
this.openModal(modal);
|
273 |
}
|
274 |
-
|
275 |
openUpgradeModal() {
|
276 |
-
var modal =
|
277 |
onRequestClose: this.closeModal.bind(this, 'upgrade')
|
278 |
});
|
279 |
this.openModal(modal);
|
280 |
}
|
281 |
-
|
282 |
}
|
283 |
-
|
284 |
;
|
285 |
var happyForms = window.happyForms || {};
|
286 |
window.happyForms = happyForms;
|
287 |
happyForms.modals = new DashboardModalsClass();
|
288 |
})(jQuery, _happyFormsDashboardModalsSettings);
|
|
|
289 |
|
290 |
-
|
291 |
-
|
292 |
-
/***/ "./node_modules/@babel/runtime/helpers/defineProperty.js":
|
293 |
-
/*!***************************************************************!*\
|
294 |
-
!*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
|
295 |
-
\***************************************************************/
|
296 |
-
/*! no static exports found */
|
297 |
-
/***/ (function(module, exports) {
|
298 |
-
|
299 |
-
function _defineProperty(obj, key, value) {
|
300 |
-
if (key in obj) {
|
301 |
-
Object.defineProperty(obj, key, {
|
302 |
-
value: value,
|
303 |
-
enumerable: true,
|
304 |
-
configurable: true,
|
305 |
-
writable: true
|
306 |
-
});
|
307 |
-
} else {
|
308 |
-
obj[key] = value;
|
309 |
-
}
|
310 |
-
|
311 |
-
return obj;
|
312 |
-
}
|
313 |
-
|
314 |
-
module.exports = _defineProperty;
|
315 |
-
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
316 |
-
|
317 |
-
/***/ }),
|
318 |
-
|
319 |
-
/***/ "@wordpress/components":
|
320 |
-
/*!************************************!*\
|
321 |
-
!*** external ["wp","components"] ***!
|
322 |
-
\************************************/
|
323 |
-
/*! no static exports found */
|
324 |
-
/***/ (function(module, exports) {
|
325 |
-
|
326 |
-
(function() { module.exports = window["wp"]["components"]; }());
|
327 |
-
|
328 |
-
/***/ }),
|
329 |
-
|
330 |
-
/***/ "@wordpress/element":
|
331 |
-
/*!*********************************!*\
|
332 |
-
!*** external ["wp","element"] ***!
|
333 |
-
\*********************************/
|
334 |
-
/*! no static exports found */
|
335 |
-
/***/ (function(module, exports) {
|
336 |
-
|
337 |
-
(function() { module.exports = window["wp"]["element"]; }());
|
338 |
-
|
339 |
-
/***/ }),
|
340 |
-
|
341 |
-
/***/ "@wordpress/i18n":
|
342 |
-
/*!******************************!*\
|
343 |
-
!*** external ["wp","i18n"] ***!
|
344 |
-
\******************************/
|
345 |
-
/*! no static exports found */
|
346 |
-
/***/ (function(module, exports) {
|
347 |
-
|
348 |
-
(function() { module.exports = window["wp"]["i18n"]; }());
|
349 |
-
|
350 |
-
/***/ })
|
351 |
-
|
352 |
-
/******/ });
|
353 |
//# sourceMappingURL=dashboard-modals.js.map
|
1 |
+
/******/ (() => { // webpackBootstrap
|
2 |
+
/******/ "use strict";
|
3 |
+
/******/ var __webpack_modules__ = ({
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
/***/ "./build/core/assets/jsx/src/admin/dashboard-modals.js":
|
6 |
/*!*************************************************************!*\
|
7 |
!*** ./build/core/assets/jsx/src/admin/dashboard-modals.js ***!
|
8 |
\*************************************************************/
|
9 |
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
10 |
|
|
|
11 |
__webpack_require__.r(__webpack_exports__);
|
12 |
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
13 |
+
/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)
|
14 |
+
/* harmony export */ });
|
15 |
+
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
|
16 |
+
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
|
17 |
+
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
|
18 |
+
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__);
|
19 |
+
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
|
20 |
+
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
|
21 |
|
22 |
|
23 |
|
28 |
* Modal handler class
|
29 |
*
|
30 |
*/
|
31 |
+
/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__($, settings) {
|
|
|
32 |
const {
|
33 |
render
|
34 |
} = wp.element;
|
35 |
+
|
36 |
/**
|
37 |
*
|
38 |
* Modal wrapper
|
39 |
*
|
40 |
*/
|
|
|
41 |
const ModalProvider = props => {
|
42 |
+
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.SlotFillProvider, null, props.modal, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_1__.Popover.Slot, null));
|
43 |
};
|
|
|
44 |
return class DashboardModals {
|
45 |
+
area = null;
|
46 |
constructor() {
|
|
|
|
|
47 |
this.area = document.getElementById('happyforms-modals-area');
|
48 |
}
|
|
|
49 |
openModal(modal) {
|
50 |
+
render((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(ModalProvider, {
|
51 |
modal: modal
|
52 |
}), this.area);
|
53 |
}
|
|
|
54 |
closeModal(modal) {
|
55 |
+
render((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null), this.area);
|
56 |
$.post(ajaxurl, {
|
57 |
action: settings.actionModalDismiss,
|
58 |
id: modal
|
59 |
});
|
60 |
}
|
|
|
61 |
};
|
62 |
+
}
|
63 |
|
64 |
/***/ }),
|
65 |
|
66 |
+
/***/ "@wordpress/components":
|
67 |
+
/*!************************************!*\
|
68 |
+
!*** external ["wp","components"] ***!
|
69 |
+
\************************************/
|
70 |
+
/***/ ((module) => {
|
71 |
+
|
72 |
+
module.exports = window["wp"]["components"];
|
73 |
+
|
74 |
+
/***/ }),
|
75 |
+
|
76 |
+
/***/ "@wordpress/element":
|
77 |
+
/*!*********************************!*\
|
78 |
+
!*** external ["wp","element"] ***!
|
79 |
+
\*********************************/
|
80 |
+
/***/ ((module) => {
|
81 |
+
|
82 |
+
module.exports = window["wp"]["element"];
|
83 |
+
|
84 |
+
/***/ }),
|
85 |
+
|
86 |
+
/***/ "@wordpress/i18n":
|
87 |
+
/*!******************************!*\
|
88 |
+
!*** external ["wp","i18n"] ***!
|
89 |
+
\******************************/
|
90 |
+
/***/ ((module) => {
|
91 |
+
|
92 |
+
module.exports = window["wp"]["i18n"];
|
93 |
+
|
94 |
+
/***/ })
|
95 |
+
|
96 |
+
/******/ });
|
97 |
+
/************************************************************************/
|
98 |
+
/******/ // The module cache
|
99 |
+
/******/ var __webpack_module_cache__ = {};
|
100 |
+
/******/
|
101 |
+
/******/ // The require function
|
102 |
+
/******/ function __webpack_require__(moduleId) {
|
103 |
+
/******/ // Check if module is in cache
|
104 |
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
105 |
+
/******/ if (cachedModule !== undefined) {
|
106 |
+
/******/ return cachedModule.exports;
|
107 |
+
/******/ }
|
108 |
+
/******/ // Create a new module (and put it into the cache)
|
109 |
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
110 |
+
/******/ // no module.id needed
|
111 |
+
/******/ // no module.loaded needed
|
112 |
+
/******/ exports: {}
|
113 |
+
/******/ };
|
114 |
+
/******/
|
115 |
+
/******/ // Execute the module function
|
116 |
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
117 |
+
/******/
|
118 |
+
/******/ // Return the exports of the module
|
119 |
+
/******/ return module.exports;
|
120 |
+
/******/ }
|
121 |
+
/******/
|
122 |
+
/************************************************************************/
|
123 |
+
/******/ /* webpack/runtime/compat get default export */
|
124 |
+
/******/ (() => {
|
125 |
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
126 |
+
/******/ __webpack_require__.n = (module) => {
|
127 |
+
/******/ var getter = module && module.__esModule ?
|
128 |
+
/******/ () => (module['default']) :
|
129 |
+
/******/ () => (module);
|
130 |
+
/******/ __webpack_require__.d(getter, { a: getter });
|
131 |
+
/******/ return getter;
|
132 |
+
/******/ };
|
133 |
+
/******/ })();
|
134 |
+
/******/
|
135 |
+
/******/ /* webpack/runtime/define property getters */
|
136 |
+
/******/ (() => {
|
137 |
+
/******/ // define getter functions for harmony exports
|
138 |
+
/******/ __webpack_require__.d = (exports, definition) => {
|
139 |
+
/******/ for(var key in definition) {
|
140 |
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
141 |
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
142 |
+
/******/ }
|
143 |
+
/******/ }
|
144 |
+
/******/ };
|
145 |
+
/******/ })();
|
146 |
+
/******/
|
147 |
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
148 |
+
/******/ (() => {
|
149 |
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
150 |
+
/******/ })();
|
151 |
+
/******/
|
152 |
+
/******/ /* webpack/runtime/make namespace object */
|
153 |
+
/******/ (() => {
|
154 |
+
/******/ // define __esModule on exports
|
155 |
+
/******/ __webpack_require__.r = (exports) => {
|
156 |
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
157 |
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
158 |
+
/******/ }
|
159 |
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
160 |
+
/******/ };
|
161 |
+
/******/ })();
|
162 |
+
/******/
|
163 |
+
/************************************************************************/
|
164 |
+
var __webpack_exports__ = {};
|
165 |
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
166 |
+
(() => {
|
167 |
/*!************************************************************!*\
|
168 |
!*** ./build/inc/assets/jsx/src/admin/dashboard-modals.js ***!
|
169 |
\************************************************************/
|
|
|
|
|
|
|
|
|
170 |
__webpack_require__.r(__webpack_exports__);
|
171 |
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
|
172 |
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
|
180 |
|
181 |
|
182 |
|
|
|
183 |
(function ($, settings) {
|
184 |
/**
|
185 |
*
|
188 |
*/
|
189 |
const OnboardingModal = props => {
|
190 |
const imageURL = `${settings.pluginURL}/inc/assets/img/welcome.svg`;
|
191 |
+
const [email, setEmail] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)('');
|
|
|
192 |
const onEmailChange = e => {
|
193 |
setEmail(e.target.value);
|
194 |
};
|
|
|
195 |
const onRequestClose = () => {
|
196 |
$.post(ajaxurl, {
|
197 |
action: settings.onboardingModalAction,
|
200 |
});
|
201 |
return props.onRequestClose();
|
202 |
};
|
203 |
+
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Guide, {
|
|
|
204 |
onFinish: onRequestClose,
|
205 |
className: "happyforms-modal happyforms-modal--onboarding",
|
206 |
pages: [{
|
207 |
+
image: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("picture", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
|
208 |
src: imageURL
|
209 |
})),
|
210 |
+
content: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
211 |
className: "happyforms-modal__header"
|
212 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("h1", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('One last thing', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('We\'ll occasionally send you emails about plugin updates. And don\'t sweat it, you can unsubscribe anytime.', 'happyforms'))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
213 |
className: "happyforms-modal__body"
|
214 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("label", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Email address', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("input", {
|
215 |
type: "email",
|
216 |
value: email,
|
217 |
onChange: onEmailChange,
|
218 |
autoFocus: true
|
219 |
+
})), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
220 |
className: "happyforms-modal__footer"
|
221 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.BaseControl, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
|
222 |
isPrimary: true,
|
223 |
onClick: onRequestClose,
|
224 |
+
text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Continue', 'happyforms')
|
225 |
}))))
|
226 |
}]
|
227 |
});
|
228 |
};
|
229 |
+
|
230 |
/**
|
231 |
*
|
232 |
* Upgrade modal
|
233 |
*
|
234 |
*/
|
|
|
|
|
235 |
const UpgradeModal = props => {
|
236 |
const imageURL = `${settings.pluginURL}/inc/assets/img/upgrade.svg`;
|
237 |
+
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Guide, {
|
238 |
onFinish: props.onRequestClose,
|
239 |
className: "happyforms-modal happyforms-modal--upgrade",
|
240 |
pages: [{
|
241 |
+
image: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("picture", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
|
242 |
src: imageURL
|
243 |
})),
|
244 |
+
content: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
245 |
className: "happyforms-modal__header"
|
246 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("h1", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('You\'ll need to upgrade to get access to this', 'happyforms'))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
247 |
className: "happyforms-modal__body"
|
248 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('You\'re just a mouse click and a few key taps away from building better forms.', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("ul", null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Advanced features and integrations', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Help from our friendly support team', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Automatically transfer your free forms', 'happyforms')), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("li", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('New updates every second week', 'happyforms'))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Ready to build better forms?', 'happyforms'))), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", {
|
249 |
className: "happyforms-modal__footer"
|
250 |
+
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.BaseControl, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
|
251 |
isPrimary: true,
|
252 |
href: "https://happyforms.io/upgrade",
|
253 |
target: "_blank",
|
254 |
+
text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Learn More Now', 'happyforms')
|
255 |
+
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
|
256 |
isSecondary: true,
|
257 |
onClick: props.onRequestClose,
|
258 |
+
text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_3__.__)('Nope, Maybe Later', 'happyforms')
|
259 |
}))))
|
260 |
}]
|
261 |
});
|
262 |
};
|
263 |
+
const DashboardModalsBaseClass = (0,_happyforms_core_jsx_src_admin_dashboard_modals__WEBPACK_IMPORTED_MODULE_1__["default"])($, settings);
|
|
|
|
|
264 |
class DashboardModalsClass extends DashboardModalsBaseClass {
|
265 |
openOnboardingModal() {
|
266 |
+
var modal = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(OnboardingModal, {
|
267 |
onRequestClose: this.closeModal.bind(this, 'onboarding'),
|
268 |
status: settings.trackingStatus
|
269 |
});
|
270 |
this.openModal(modal);
|
271 |
}
|
|
|
272 |
openUpgradeModal() {
|
273 |
+
var modal = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(UpgradeModal, {
|
274 |
onRequestClose: this.closeModal.bind(this, 'upgrade')
|
275 |
});
|
276 |
this.openModal(modal);
|
277 |
}
|
|
|
278 |
}
|
|
|
279 |
;
|
280 |
var happyForms = window.happyForms || {};
|
281 |
window.happyForms = happyForms;
|
282 |
happyForms.modals = new DashboardModalsClass();
|
283 |
})(jQuery, _happyFormsDashboardModalsSettings);
|
284 |
+
})();
|
285 |
|
286 |
+
/******/ })()
|
287 |
+
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
//# sourceMappingURL=dashboard-modals.js.map
|
inc/assets/jsx/build/admin/dashboard-modals.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./build/core/assets/jsx/src/admin/dashboard-modals.js","webpack:///./build/inc/assets/jsx/src/admin/dashboard-modals.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///external [\"wp\",\"components\"]","webpack:///external [\"wp\",\"element\"]","webpack:///external [\"wp\",\"i18n\"]"],"names":["$","settings","render","wp","element","ModalProvider","props","modal","DashboardModals","constructor","area","document","getElementById","openModal","closeModal","post","ajaxurl","action","actionModalDismiss","id","OnboardingModal","imageURL","pluginURL","email","setEmail","useState","onEmailChange","e","target","value","onRequestClose","onboardingModalAction","_wpnonce","onboardingModalNonce","image","content","__","UpgradeModal","DashboardModalsBaseClass","DashboardModalsClass","openOnboardingModal","bind","trackingStatus","openUpgradeModal","happyForms","window","modals","jQuery","_happyFormsDashboardModalsSettings"],"mappings":"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","file":"dashboard-modals.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./build/inc/assets/jsx/src/admin/dashboard-modals.js\");\n","import { SlotFillProvider, Button, Modal, Guide, Popover, Notice, ExternalLink, TextControl, CheckboxControl, BaseControl } from '@wordpress/components';\nimport { useState, useReducer, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n *\n * Modal handler class\n *\n */\nexport default function( $, settings ) {\n\n\tconst { render } = wp.element;\n\n\t/**\n\t *\n\t * Modal wrapper\n\t *\n\t */\n\tconst ModalProvider = ( props ) => {\n\t\treturn (\n\t\t\t<SlotFillProvider>\n\t\t\t\t{ props.modal }\n\t\t\t\t<Popover.Slot />\n\t\t\t</SlotFillProvider>\n\t\t);\n\t};\n\t\n\treturn class DashboardModals {\n\n\t\tarea = null;\n\t\t\n\t\tconstructor() {\n\t\t\tthis.area = document.getElementById( 'happyforms-modals-area' );\n\t\t}\n\n\t\topenModal( modal ) {\n\t\t\trender( <ModalProvider modal={modal}></ModalProvider>, this.area );\n\t\t}\n\n\t\tcloseModal( modal ) {\n\t\t\trender( <></>, this.area );\n\n\t\t\t$.post( ajaxurl, {\n\t\t\t\taction: settings.actionModalDismiss,\n\t\t\t\tid: modal, \n\t\t\t} );\n\t\t}\n\n\t};\n\n}","import DashboardModals from '@happyforms/core/jsx/src/admin/dashboard-modals';\nimport { SlotFillProvider, Button, Modal, Guide, Popover, Notice, ExternalLink, TextControl, CheckboxControl, BaseControl } from '@wordpress/components';\nimport { useState, useReducer, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n( function( $, settings ) {\n\n\t/**\n\t *\n\t * Onboarding modal\n\t *\n\t */\n\tconst OnboardingModal = ( props ) => {\n\t\tconst imageURL = `${settings.pluginURL}/inc/assets/img/welcome.svg`;\n\t\tconst [ email, setEmail ] = useState( '' );\n\n\t\tconst onEmailChange = ( e ) => {\n\t\t\tsetEmail( e.target.value );\n\t\t};\n\n\t\tconst onRequestClose = () => {\n\t\t\t$.post( ajaxurl, {\n\t\t\t\taction: settings.onboardingModalAction,\n\t\t\t\t_wpnonce: settings.onboardingModalNonce,\n\t\t\t\temail: email,\n\t\t\t} );\n\n\t\t\treturn props.onRequestClose();\n\t\t}\n\n\t\treturn(\n\t\t\t<Guide\n\t\t\t\tonFinish={ onRequestClose }\n\t\t\t\tclassName=\"happyforms-modal happyforms-modal--onboarding\"\n\t\t\t\tpages={ [\n\t\t\t\t\t{\n\t\t\t\t\t\timage: (\n\t\t\t\t\t\t\t<picture>\n\t\t\t\t\t\t\t\t<img src={imageURL} />\n\t\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__header\">\n\t\t\t\t\t\t\t\t<h1>{ __( 'One last thing', 'happyforms' ) }</h1>\n\t\t\t\t\t\t\t\t<p>{ __( 'We\\'ll occasionally send you emails about plugin updates. And don\\'t sweat it, you can unsubscribe anytime.', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__body\">\n\t\t\t\t\t\t\t\t<label>{ __( 'Email address', 'happyforms' ) }</label>\n\t\t\t\t\t\t\t\t<input type=\"email\" value={ email } onChange={ onEmailChange } autoFocus />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__footer\">\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<Button isPrimary={true} onClick={ onRequestClose } text={ __( 'Continue', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * Upgrade modal\n\t *\n\t */\n\tconst UpgradeModal = ( props ) => {\n\t\tconst imageURL = `${settings.pluginURL}/inc/assets/img/upgrade.svg`;\n\n\t\treturn(\n\t\t\t<Guide\n\t\t\t\tonFinish={ props.onRequestClose }\n\t\t\t\tclassName=\"happyforms-modal happyforms-modal--upgrade\"\n\t\t\t\tpages={ [\n\t\t\t\t\t{\n\t\t\t\t\t\timage: (\n\t\t\t\t\t\t\t<picture>\n\t\t\t\t\t\t\t\t<img src={imageURL} />\n\t\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__header\">\n\t\t\t\t\t\t\t\t<h1>{ __( 'Start with a free trial', 'happyforms' ) }</h1>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__body\">\n\t\t\t\t\t\t\t\t<p>{ __( 'You\\'re just a mouse click and a few key taps away from building better forms.', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Advanced features and integrations', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Help from our friendly support team', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Automatically transfer your free forms', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'New updates every second week', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t<p>{ __( 'Ready to build better forms?', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__footer\">\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<Button isPrimary={true} href=\"https://happyforms.io/upgrade\" target=\"_blank\" text={ __( 'Start a Free 7-day Trial', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t\t<Button isSecondary={true} onClick={ props.onRequestClose } text={ __( 'Nope, Maybe Later', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst DashboardModalsBaseClass = DashboardModals( $, settings );\n\n\tclass DashboardModalsClass extends DashboardModalsBaseClass {\n\n\t\topenOnboardingModal() {\n\t\t\tvar modal = (\n\t\t\t\t<OnboardingModal\n\t\t\t\t\tonRequestClose={ this.closeModal.bind( this, 'onboarding' ) }\n\t\t\t\t\tstatus={ settings.trackingStatus } />\n\t\t\t);\n\n\t\t\tthis.openModal( modal );\n\t\t}\n\n\t\topenUpgradeModal() {\n\t\t\tvar modal = <UpgradeModal onRequestClose={ this.closeModal.bind( this, 'upgrade' ) } />\n\n\t\t\tthis.openModal( modal );\n\t\t}\n\n\t};\n\n\tvar happyForms = window.happyForms || {};\n\twindow.happyForms = happyForms;\n\n\thappyForms.modals = new DashboardModalsClass();\n\n} )( jQuery, _happyFormsDashboardModalsSettings );\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","(function() { module.exports = window[\"wp\"][\"components\"]; }());","(function() { module.exports = window[\"wp\"][\"element\"]; }());","(function() { module.exports = window[\"wp\"][\"i18n\"]; }());"],"sourceRoot":""}
|
1 |
+
{"version":3,"file":"dashboard-modals.js","mappings":"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","sources":["webpack://happyforms/./build/core/assets/jsx/src/admin/dashboard-modals.js","webpack://happyforms/external window [\"wp\",\"components\"]","webpack://happyforms/external window [\"wp\",\"element\"]","webpack://happyforms/external window [\"wp\",\"i18n\"]","webpack://happyforms/webpack/bootstrap","webpack://happyforms/webpack/runtime/compat get default export","webpack://happyforms/webpack/runtime/define property getters","webpack://happyforms/webpack/runtime/hasOwnProperty shorthand","webpack://happyforms/webpack/runtime/make namespace object","webpack://happyforms/./build/inc/assets/jsx/src/admin/dashboard-modals.js"],"sourcesContent":["import { SlotFillProvider, Button, Modal, Guide, Popover, Notice, ExternalLink, TextControl, CheckboxControl, BaseControl } from '@wordpress/components';\nimport { useState, useReducer, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n *\n * Modal handler class\n *\n */\nexport default function( $, settings ) {\n\n\tconst { render } = wp.element;\n\n\t/**\n\t *\n\t * Modal wrapper\n\t *\n\t */\n\tconst ModalProvider = ( props ) => {\n\t\treturn (\n\t\t\t<SlotFillProvider>\n\t\t\t\t{ props.modal }\n\t\t\t\t<Popover.Slot />\n\t\t\t</SlotFillProvider>\n\t\t);\n\t};\n\t\n\treturn class DashboardModals {\n\n\t\tarea = null;\n\t\t\n\t\tconstructor() {\n\t\t\tthis.area = document.getElementById( 'happyforms-modals-area' );\n\t\t}\n\n\t\topenModal( modal ) {\n\t\t\trender( <ModalProvider modal={modal}></ModalProvider>, this.area );\n\t\t}\n\n\t\tcloseModal( modal ) {\n\t\t\trender( <></>, this.area );\n\n\t\t\t$.post( ajaxurl, {\n\t\t\t\taction: settings.actionModalDismiss,\n\t\t\t\tid: modal, \n\t\t\t} );\n\t\t}\n\n\t};\n\n}","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"i18n\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import DashboardModals from '@happyforms/core/jsx/src/admin/dashboard-modals';\nimport { SlotFillProvider, Button, Modal, Guide, Popover, Notice, ExternalLink, TextControl, CheckboxControl, BaseControl } from '@wordpress/components';\nimport { useState, useReducer, useRef } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n( function( $, settings ) {\n\n\t/**\n\t *\n\t * Onboarding modal\n\t *\n\t */\n\tconst OnboardingModal = ( props ) => {\n\t\tconst imageURL = `${settings.pluginURL}/inc/assets/img/welcome.svg`;\n\t\tconst [ email, setEmail ] = useState( '' );\n\n\t\tconst onEmailChange = ( e ) => {\n\t\t\tsetEmail( e.target.value );\n\t\t};\n\n\t\tconst onRequestClose = () => {\n\t\t\t$.post( ajaxurl, {\n\t\t\t\taction: settings.onboardingModalAction,\n\t\t\t\t_wpnonce: settings.onboardingModalNonce,\n\t\t\t\temail: email,\n\t\t\t} );\n\n\t\t\treturn props.onRequestClose();\n\t\t}\n\n\t\treturn(\n\t\t\t<Guide\n\t\t\t\tonFinish={ onRequestClose }\n\t\t\t\tclassName=\"happyforms-modal happyforms-modal--onboarding\"\n\t\t\t\tpages={ [\n\t\t\t\t\t{\n\t\t\t\t\t\timage: (\n\t\t\t\t\t\t\t<picture>\n\t\t\t\t\t\t\t\t<img src={imageURL} />\n\t\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__header\">\n\t\t\t\t\t\t\t\t<h1>{ __( 'One last thing', 'happyforms' ) }</h1>\n\t\t\t\t\t\t\t\t<p>{ __( 'We\\'ll occasionally send you emails about plugin updates. And don\\'t sweat it, you can unsubscribe anytime.', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__body\">\n\t\t\t\t\t\t\t\t<label>{ __( 'Email address', 'happyforms' ) }</label>\n\t\t\t\t\t\t\t\t<input type=\"email\" value={ email } onChange={ onEmailChange } autoFocus />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__footer\">\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<Button isPrimary={true} onClick={ onRequestClose } text={ __( 'Continue', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\t/**\n\t *\n\t * Upgrade modal\n\t *\n\t */\n\tconst UpgradeModal = ( props ) => {\n\t\tconst imageURL = `${settings.pluginURL}/inc/assets/img/upgrade.svg`;\n\n\t\treturn(\n\t\t\t<Guide\n\t\t\t\tonFinish={ props.onRequestClose }\n\t\t\t\tclassName=\"happyforms-modal happyforms-modal--upgrade\"\n\t\t\t\tpages={ [\n\t\t\t\t\t{\n\t\t\t\t\t\timage: (\n\t\t\t\t\t\t\t<picture>\n\t\t\t\t\t\t\t\t<img src={imageURL} />\n\t\t\t\t\t\t\t</picture>\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__header\">\n\t\t\t\t\t\t\t\t<h1>{ __( 'You\\'ll need to upgrade to get access to this', 'happyforms' ) }</h1>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__body\">\n\t\t\t\t\t\t\t\t<p>{ __( 'You\\'re just a mouse click and a few key taps away from building better forms.', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Advanced features and integrations', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Help from our friendly support team', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'Automatically transfer your free forms', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t\t<li>{ __( 'New updates every second week', 'happyforms' ) }</li>\n\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t<p>{ __( 'Ready to build better forms?', 'happyforms' ) }</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"happyforms-modal__footer\">\n\t\t\t\t\t\t\t\t<BaseControl>\n\t\t\t\t\t\t\t\t\t<Button isPrimary={true} href=\"https://happyforms.io/upgrade\" target=\"_blank\" text={ __( 'Learn More Now', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t\t<Button isSecondary={true} onClick={ props.onRequestClose } text={ __( 'Nope, Maybe Later', 'happyforms' ) }></Button>\n\t\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst DashboardModalsBaseClass = DashboardModals( $, settings );\n\n\tclass DashboardModalsClass extends DashboardModalsBaseClass {\n\n\t\topenOnboardingModal() {\n\t\t\tvar modal = (\n\t\t\t\t<OnboardingModal\n\t\t\t\t\tonRequestClose={ this.closeModal.bind( this, 'onboarding' ) }\n\t\t\t\t\tstatus={ settings.trackingStatus } />\n\t\t\t);\n\n\t\t\tthis.openModal( modal );\n\t\t}\n\n\t\topenUpgradeModal() {\n\t\t\tvar modal = <UpgradeModal onRequestClose={ this.closeModal.bind( this, 'upgrade' ) } />\n\n\t\t\tthis.openModal( modal );\n\t\t}\n\n\t};\n\n\tvar happyForms = window.happyForms || {};\n\twindow.happyForms = happyForms;\n\n\thappyForms.modals = new DashboardModalsClass();\n\n} )( jQuery, _happyFormsDashboardModalsSettings );\n"],"names":["SlotFillProvider","Button","Modal","Guide","Popover","Notice","ExternalLink","TextControl","CheckboxControl","BaseControl","useState","useReducer","useRef","__","sprintf","$","settings","render","wp","element","ModalProvider","props","modal","DashboardModals","area","constructor","document","getElementById","openModal","closeModal","post","ajaxurl","action","actionModalDismiss","id","OnboardingModal","imageURL","pluginURL","email","setEmail","onEmailChange","e","target","value","onRequestClose","onboardingModalAction","_wpnonce","onboardingModalNonce","image","content","UpgradeModal","DashboardModalsBaseClass","DashboardModalsClass","openOnboardingModal","bind","trackingStatus","openUpgradeModal","happyForms","window","modals","jQuery","_happyFormsDashboardModalsSettings"],"sourceRoot":""}
|
inc/assets/jsx/src/admin/dashboard-modals.js
CHANGED
@@ -84,7 +84,7 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
84 |
content: (
|
85 |
<>
|
86 |
<div className="happyforms-modal__header">
|
87 |
-
<h1>{ __( '
|
88 |
</div>
|
89 |
<div className="happyforms-modal__body">
|
90 |
<p>{ __( 'You\'re just a mouse click and a few key taps away from building better forms.', 'happyforms' ) }</p>
|
@@ -98,7 +98,7 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
98 |
</div>
|
99 |
<div className="happyforms-modal__footer">
|
100 |
<BaseControl>
|
101 |
-
<Button isPrimary={true} href="https://happyforms.io/upgrade" target="_blank" text={ __( '
|
102 |
<Button isSecondary={true} onClick={ props.onRequestClose } text={ __( 'Nope, Maybe Later', 'happyforms' ) }></Button>
|
103 |
</BaseControl>
|
104 |
</div>
|
84 |
content: (
|
85 |
<>
|
86 |
<div className="happyforms-modal__header">
|
87 |
+
<h1>{ __( 'You\'ll need to upgrade to get access to this', 'happyforms' ) }</h1>
|
88 |
</div>
|
89 |
<div className="happyforms-modal__body">
|
90 |
<p>{ __( 'You\'re just a mouse click and a few key taps away from building better forms.', 'happyforms' ) }</p>
|
98 |
</div>
|
99 |
<div className="happyforms-modal__footer">
|
100 |
<BaseControl>
|
101 |
+
<Button isPrimary={true} href="https://happyforms.io/upgrade" target="_blank" text={ __( 'Learn More Now', 'happyforms' ) }></Button>
|
102 |
<Button isSecondary={true} onClick={ props.onRequestClose } text={ __( 'Nope, Maybe Later', 'happyforms' ) }></Button>
|
103 |
</BaseControl>
|
104 |
</div>
|
inc/classes/class-happyforms.php
CHANGED
@@ -77,6 +77,10 @@ class HappyForms extends HappyForms_Core {
|
|
77 |
}
|
78 |
|
79 |
public function add_dummy_setup_controls( $controls ) {
|
|
|
|
|
|
|
|
|
80 |
$setup_controls = array(
|
81 |
11 => array(
|
82 |
'type' => 'upsell',
|
@@ -131,7 +135,7 @@ class HappyForms extends HappyForms_Core {
|
|
131 |
3200 => array(
|
132 |
'type' => 'checkbox_dummy',
|
133 |
'dummy_id' => 'block_emails',
|
134 |
-
'label' =>
|
135 |
),
|
136 |
);
|
137 |
|
@@ -223,12 +227,12 @@ class HappyForms extends HappyForms_Core {
|
|
223 |
'dummy_id' => 'payment_cancelled',
|
224 |
'label' => __( 'Payment cancelled', 'happyforms' ),
|
225 |
),
|
226 |
-
|
227 |
'type' => 'text_dummy_reset',
|
228 |
'dummy_id' => 'previous_page',
|
229 |
'label' => __( 'Previous page', 'happyforms' ),
|
230 |
),
|
231 |
-
|
232 |
'type' => 'text_dummy_reset',
|
233 |
'dummy_id' => 'redirect_page',
|
234 |
'label' => __( 'Redirect to page', 'happyforms' ),
|
@@ -238,7 +242,7 @@ class HappyForms extends HappyForms_Core {
|
|
238 |
'dummy_id' => 'print_submission',
|
239 |
'label' => __( 'Print user submission', 'happyforms' ),
|
240 |
),
|
241 |
-
|
242 |
'type' => 'text_dummy_reset',
|
243 |
'dummy_id' => 'edit_reply',
|
244 |
'label' => __( 'Edit reply', 'happyforms' ),
|
@@ -248,7 +252,7 @@ class HappyForms extends HappyForms_Core {
|
|
248 |
'dummy_id' => 'clear_saved_reply',
|
249 |
'label' => __( 'Clear saved draft reply', 'happyforms' ),
|
250 |
),
|
251 |
-
|
252 |
'type' => 'text_dummy_reset',
|
253 |
'dummy_id' => 'save_draft_reply',
|
254 |
'label' => __( 'Save draft reply', 'happyforms' ),
|
@@ -263,27 +267,27 @@ class HappyForms extends HappyForms_Core {
|
|
263 |
'dummy_id' => 'remove_uploaded_file',
|
264 |
'label' => __( 'Remove uploaded file', 'happyforms' ),
|
265 |
),
|
266 |
-
|
267 |
'type' => 'text_dummy_reset',
|
268 |
'dummy_id' => 'review_reply',
|
269 |
'label' => __( 'Review reply', 'happyforms' ),
|
270 |
),
|
271 |
-
|
272 |
'type' => 'text_dummy_reset',
|
273 |
'dummy_id' => 'start_drawing_signature',
|
274 |
'label' => __( 'Start drawing signature', 'happyforms' ),
|
275 |
),
|
276 |
-
|
277 |
'type' => 'text_dummy_reset',
|
278 |
'dummy_id' => 'start_over_signature',
|
279 |
'label' => __( 'Start over drawing signature', 'happyforms' ),
|
280 |
),
|
281 |
-
|
282 |
'type' => 'text_dummy_reset',
|
283 |
'dummy_id' => 'clear_drawn_signature',
|
284 |
'label' => __( 'Clear drawn signature', 'happyforms' ),
|
285 |
),
|
286 |
-
|
287 |
'type' => 'text_dummy_reset',
|
288 |
'dummy_id' => 'done_drawing_signature',
|
289 |
'label' => __( 'Done drawing signature', 'happyforms' ),
|
77 |
}
|
78 |
|
79 |
public function add_dummy_setup_controls( $controls ) {
|
80 |
+
$block_mails_label_1 = __( 'Trash submission if it contains words in', 'happyforms' );
|
81 |
+
$block_mails_label_2 = __( 'Disallowed Comment Keys', 'happyforms' );
|
82 |
+
$options_discussion_url = get_admin_url( null, 'options-discussion.php' );
|
83 |
+
|
84 |
$setup_controls = array(
|
85 |
11 => array(
|
86 |
'type' => 'upsell',
|
135 |
3200 => array(
|
136 |
'type' => 'checkbox_dummy',
|
137 |
'dummy_id' => 'block_emails',
|
138 |
+
'label' => sprintf( '%s <a href="%s" target="_blank" class="external">%s</a>', $block_mails_label_1, $options_discussion_url, $block_mails_label_2 ),
|
139 |
),
|
140 |
);
|
141 |
|
227 |
'dummy_id' => 'payment_cancelled',
|
228 |
'label' => __( 'Payment cancelled', 'happyforms' ),
|
229 |
),
|
230 |
+
2273 => array(
|
231 |
'type' => 'text_dummy_reset',
|
232 |
'dummy_id' => 'previous_page',
|
233 |
'label' => __( 'Previous page', 'happyforms' ),
|
234 |
),
|
235 |
+
2274 => array(
|
236 |
'type' => 'text_dummy_reset',
|
237 |
'dummy_id' => 'redirect_page',
|
238 |
'label' => __( 'Redirect to page', 'happyforms' ),
|
242 |
'dummy_id' => 'print_submission',
|
243 |
'label' => __( 'Print user submission', 'happyforms' ),
|
244 |
),
|
245 |
+
2271 => array(
|
246 |
'type' => 'text_dummy_reset',
|
247 |
'dummy_id' => 'edit_reply',
|
248 |
'label' => __( 'Edit reply', 'happyforms' ),
|
252 |
'dummy_id' => 'clear_saved_reply',
|
253 |
'label' => __( 'Clear saved draft reply', 'happyforms' ),
|
254 |
),
|
255 |
+
2270 => array(
|
256 |
'type' => 'text_dummy_reset',
|
257 |
'dummy_id' => 'save_draft_reply',
|
258 |
'label' => __( 'Save draft reply', 'happyforms' ),
|
267 |
'dummy_id' => 'remove_uploaded_file',
|
268 |
'label' => __( 'Remove uploaded file', 'happyforms' ),
|
269 |
),
|
270 |
+
2272 => array(
|
271 |
'type' => 'text_dummy_reset',
|
272 |
'dummy_id' => 'review_reply',
|
273 |
'label' => __( 'Review reply', 'happyforms' ),
|
274 |
),
|
275 |
+
2254 => array(
|
276 |
'type' => 'text_dummy_reset',
|
277 |
'dummy_id' => 'start_drawing_signature',
|
278 |
'label' => __( 'Start drawing signature', 'happyforms' ),
|
279 |
),
|
280 |
+
2255 => array(
|
281 |
'type' => 'text_dummy_reset',
|
282 |
'dummy_id' => 'start_over_signature',
|
283 |
'label' => __( 'Start over drawing signature', 'happyforms' ),
|
284 |
),
|
285 |
+
2256 => array(
|
286 |
'type' => 'text_dummy_reset',
|
287 |
'dummy_id' => 'clear_drawn_signature',
|
288 |
'label' => __( 'Clear drawn signature', 'happyforms' ),
|
289 |
),
|
290 |
+
2257 => array(
|
291 |
'type' => 'text_dummy_reset',
|
292 |
'dummy_id' => 'done_drawing_signature',
|
293 |
'label' => __( 'Done drawing signature', 'happyforms' ),
|
languages/happyforms.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Happyforms (free) 1.21.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"POT-Creation-Date: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: happyforms\n"
|
@@ -172,7 +172,7 @@ msgid "Email me a copy of each submission"
|
|
172 |
msgstr ""
|
173 |
|
174 |
#: core/classes/class-form-email.php:126
|
175 |
-
#: inc/classes/class-happyforms.php:
|
176 |
msgid "To email address"
|
177 |
msgstr ""
|
178 |
|
@@ -293,67 +293,75 @@ msgstr ""
|
|
293 |
msgid "These messages are shown to submitters as they fill out the form to help them trigger an action."
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: core/classes/class-form-messages.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
msgid "Errors"
|
298 |
msgstr ""
|
299 |
|
300 |
-
#: core/classes/class-form-messages.php:
|
301 |
msgid "These messages are shown to submitters when they try to submit but one or more fields has a mistake."
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: core/classes/class-form-messages.php:
|
305 |
msgid "Hints"
|
306 |
msgstr ""
|
307 |
|
308 |
-
#: core/classes/class-form-messages.php:
|
309 |
msgid "These messages are shown to submitters as they fill out the form to help them avoid mistakes."
|
310 |
msgstr ""
|
311 |
|
312 |
-
#: core/classes/class-form-messages.php:
|
313 |
msgid "Too many choices are selected"
|
314 |
msgstr ""
|
315 |
|
316 |
-
#: core/classes/class-form-messages.php:
|
317 |
msgid "Not enough choices are selected"
|
318 |
msgstr ""
|
319 |
|
320 |
-
#: core/classes/class-form-messages.php:
|
321 |
msgid "Number too small"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: core/classes/class-form-messages.php:
|
325 |
msgid "Number too big"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: core/classes/class-form-messages.php:
|
329 |
msgid "Search couldn't find anything"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: core/classes/class-form-messages.php:
|
333 |
msgid "Minimum characters"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: core/classes/class-form-messages.php:
|
337 |
msgid "Maximum characters"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: core/classes/class-form-messages.php:
|
341 |
msgid "Minimum words"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: core/classes/class-form-messages.php:
|
345 |
msgid "Maximum words"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: core/classes/class-form-messages.php:
|
349 |
msgid "Question is optional"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: core/classes/class-form-messages.php:
|
353 |
msgid "Question is required"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: core/classes/class-form-messages.php:
|
357 |
msgid "Remaining submissions"
|
358 |
msgstr ""
|
359 |
|
@@ -910,15 +918,11 @@ msgstr ""
|
|
910 |
msgid "This answer isn't long enough."
|
911 |
msgstr ""
|
912 |
|
913 |
-
#: core/classes/class-wp-customize-form-manager.php:
|
914 |
-
msgid "
|
915 |
-
msgstr ""
|
916 |
-
|
917 |
-
#: core/classes/class-wp-customize-form-manager.php:163
|
918 |
-
msgid "Form updated."
|
919 |
msgstr ""
|
920 |
|
921 |
-
#: core/classes/class-wp-customize-form-manager.php:
|
922 |
msgid "The changes you made will be lost if you navigate away from this page."
|
923 |
msgstr ""
|
924 |
|
@@ -1039,7 +1043,6 @@ msgid "Last name"
|
|
1039 |
msgstr ""
|
1040 |
|
1041 |
#: core/helpers/helper-activation.php:80
|
1042 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:213
|
1043 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:49
|
1044 |
msgid "Email address"
|
1045 |
msgstr ""
|
@@ -3021,247 +3024,251 @@ msgstr ""
|
|
3021 |
msgid "Max times the same answer can be submitted"
|
3022 |
msgstr ""
|
3023 |
|
3024 |
-
#: inc/classes/class-happyforms.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3025 |
msgid "Upgrade"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: inc/classes/class-happyforms.php:
|
3029 |
msgid "Redirect to this page address (URL) after submission"
|
3030 |
msgstr ""
|
3031 |
|
3032 |
-
#: inc/classes/class-happyforms.php:
|
3033 |
msgid "Search or type URL"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: inc/classes/class-happyforms.php:
|
3037 |
msgid "Shuffle order of fields"
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: inc/classes/class-happyforms.php:
|
3041 |
msgid "Use reCAPTCHA"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: inc/classes/class-happyforms.php:
|
3045 |
msgid "Let submitters save a draft for set number of days"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: inc/classes/class-happyforms.php:
|
3049 |
msgid "Require submitters to review a submission"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: inc/classes/class-happyforms.php:
|
3053 |
msgid "Max number of submissions"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: inc/classes/class-happyforms.php:
|
3057 |
msgid "Erase submitter's personal data after set number of days"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
-
#: inc/classes/class-happyforms.php:
|
3061 |
-
msgid "Show an error message if field contains words in Disallowed Comment Keys"
|
3062 |
-
msgstr ""
|
3063 |
-
|
3064 |
-
#: inc/classes/class-happyforms.php:154
|
3065 |
msgid "Send abandonment email"
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: inc/classes/class-happyforms.php:
|
3069 |
msgid "Checkboxes & Radios"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: inc/classes/class-happyforms.php:
|
3073 |
msgid "Rating"
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: inc/classes/class-happyforms.php:
|
3077 |
msgid "Multi Step"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: inc/classes/class-happyforms.php:
|
3081 |
msgid "Form redirected after submission"
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: inc/classes/class-happyforms.php:
|
3085 |
msgid "Form has reached its reply limit"
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: inc/classes/class-happyforms.php:
|
3089 |
msgid "Submitter has returned to a draft"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: inc/classes/class-happyforms.php:
|
3093 |
msgid "Submitter is viewing review page"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: inc/classes/class-happyforms.php:
|
3097 |
msgid "Payment completed"
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: inc/classes/class-happyforms.php:
|
3101 |
msgid "Payment failed"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: inc/classes/class-happyforms.php:
|
3105 |
msgid "Payment cancelled"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: inc/classes/class-happyforms.php:
|
3109 |
msgid "Previous page"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: inc/classes/class-happyforms.php:
|
3113 |
msgid "Redirect to page"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: inc/classes/class-happyforms.php:
|
3117 |
msgid "Print user submission"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: inc/classes/class-happyforms.php:
|
3121 |
msgid "Edit reply"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: inc/classes/class-happyforms.php:
|
3125 |
msgid "Clear saved draft reply"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: inc/classes/class-happyforms.php:
|
3129 |
msgid "Save draft reply"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: inc/classes/class-happyforms.php:
|
3133 |
msgid "Upload files"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: inc/classes/class-happyforms.php:
|
3137 |
msgid "Remove uploaded file"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: inc/classes/class-happyforms.php:
|
3141 |
msgid "Review reply"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
-
#: inc/classes/class-happyforms.php:
|
3145 |
msgid "Start drawing signature"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#: inc/classes/class-happyforms.php:
|
3149 |
msgid "Start over drawing signature"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
-
#: inc/classes/class-happyforms.php:
|
3153 |
msgid "Clear drawn signature"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
-
#: inc/classes/class-happyforms.php:
|
3157 |
msgid "Done drawing signature"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
-
#: inc/classes/class-happyforms.php:
|
3161 |
msgid "Field answer reached its limit"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
-
#: inc/classes/class-happyforms.php:
|
3165 |
msgid "Coupon code invalid"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
-
#: inc/classes/class-happyforms.php:
|
3169 |
msgid "Required file isn't uploaded"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
-
#: inc/classes/class-happyforms.php:
|
3173 |
msgid "Required terms haven't been scrolled"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#: inc/classes/class-happyforms.php:
|
3177 |
msgid "Field contains disallowed word"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: inc/classes/class-happyforms.php:
|
3181 |
msgid "Disallowed IP address or browser"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: inc/classes/class-happyforms.php:
|
3185 |
msgid "This file's size is too big"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
-
#: inc/classes/class-happyforms.php:
|
3189 |
msgid "This file's type not allowed"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: inc/classes/class-happyforms.php:
|
3193 |
msgid "A file with this name has already been uploaded"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: inc/classes/class-happyforms.php:
|
3197 |
msgid "User uploaded too few files"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: inc/classes/class-happyforms.php:
|
3201 |
msgid "Price is too low"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: inc/classes/class-happyforms.php:
|
3205 |
msgid "Phone field country code label"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: inc/classes/class-happyforms.php:
|
3209 |
msgid "Phone field number label"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: inc/classes/class-happyforms.php:
|
3213 |
msgid "Total files uploaded"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: inc/classes/class-happyforms.php:
|
3217 |
msgid "Payment method"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: inc/classes/class-happyforms.php:
|
3221 |
msgid "Pay what you want"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: inc/classes/class-happyforms.php:
|
3225 |
msgid "Submitter will be redirected to PayPal"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: inc/classes/class-happyforms.php:
|
3229 |
msgid "PayPal payment"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
#: inc/classes/class-happyforms.php:
|
3233 |
msgid "Stripe is processing payment"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: inc/classes/class-happyforms.php:
|
3237 |
msgid "Stripe payment"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
-
#: inc/classes/class-happyforms.php:
|
3241 |
msgid "Stripe card field"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
-
#: inc/classes/class-happyforms.php:
|
3245 |
msgid "Card number"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
-
#: inc/classes/class-happyforms.php:
|
3249 |
msgid "Card expiration"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
-
#: inc/classes/class-happyforms.php:
|
3253 |
msgid "Card security code"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
-
#: inc/classes/class-happyforms.php:
|
3257 |
msgid "Coupon field label"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: inc/classes/class-happyforms.php:
|
3261 |
msgid "Apply coupon button label"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
-
#: inc/classes/class-happyforms.php:
|
3265 |
msgid "Current page"
|
3266 |
msgstr ""
|
3267 |
|
@@ -3779,62 +3786,50 @@ msgstr ""
|
|
3779 |
msgid "Pick a form"
|
3780 |
msgstr ""
|
3781 |
|
3782 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:211
|
3783 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:45
|
3784 |
msgid "One last thing"
|
3785 |
msgstr ""
|
3786 |
|
3787 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:211
|
3788 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:46
|
3789 |
msgid "We'll occasionally send you emails about plugin updates. And don't sweat it, you can unsubscribe anytime."
|
3790 |
msgstr ""
|
3791 |
|
3792 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:223
|
3793 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:54
|
3794 |
msgid "Continue"
|
3795 |
msgstr ""
|
3796 |
|
3797 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:246
|
3798 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:87
|
3799 |
-
msgid "
|
3800 |
msgstr ""
|
3801 |
|
3802 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3803 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:90
|
3804 |
msgid "You're just a mouse click and a few key taps away from building better forms."
|
3805 |
msgstr ""
|
3806 |
|
3807 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3808 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:92
|
3809 |
msgid "Advanced features and integrations"
|
3810 |
msgstr ""
|
3811 |
|
3812 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3813 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:93
|
3814 |
msgid "Help from our friendly support team"
|
3815 |
msgstr ""
|
3816 |
|
3817 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3818 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:94
|
3819 |
msgid "Automatically transfer your free forms"
|
3820 |
msgstr ""
|
3821 |
|
3822 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3823 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:95
|
3824 |
msgid "New updates every second week"
|
3825 |
msgstr ""
|
3826 |
|
3827 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:248
|
3828 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:97
|
3829 |
msgid "Ready to build better forms?"
|
3830 |
msgstr ""
|
3831 |
|
3832 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:254
|
3833 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:101
|
3834 |
-
msgid "
|
3835 |
msgstr ""
|
3836 |
|
3837 |
-
#: inc/assets/jsx/build/admin/dashboard-modals.js:258
|
3838 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:102
|
3839 |
msgid "Nope, Maybe Later"
|
3840 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Happyforms (free) 1.21.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"POT-Creation-Date: 2022-12-15T08:30:23+00:00\n"
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: happyforms\n"
|
172 |
msgstr ""
|
173 |
|
174 |
#: core/classes/class-form-email.php:126
|
175 |
+
#: inc/classes/class-happyforms.php:152
|
176 |
msgid "To email address"
|
177 |
msgstr ""
|
178 |
|
293 |
msgid "These messages are shown to submitters as they fill out the form to help them trigger an action."
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: core/classes/class-form-messages.php:115
|
297 |
+
msgid "Links"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: core/classes/class-form-messages.php:116
|
301 |
+
msgid "These messages are shown to submitters as they fill out the form to help them go to a new page or move somewhere on the same page."
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: core/classes/class-form-messages.php:127
|
305 |
msgid "Errors"
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: core/classes/class-form-messages.php:128
|
309 |
msgid "These messages are shown to submitters when they try to submit but one or more fields has a mistake."
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: core/classes/class-form-messages.php:137
|
313 |
msgid "Hints"
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: core/classes/class-form-messages.php:138
|
317 |
msgid "These messages are shown to submitters as they fill out the form to help them avoid mistakes."
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: core/classes/class-form-messages.php:145
|
321 |
msgid "Too many choices are selected"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: core/classes/class-form-messages.php:150
|
325 |
msgid "Not enough choices are selected"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: core/classes/class-form-messages.php:157
|
329 |
msgid "Number too small"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: core/classes/class-form-messages.php:162
|
333 |
msgid "Number too big"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: core/classes/class-form-messages.php:167
|
337 |
msgid "Search couldn't find anything"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: core/classes/class-form-messages.php:172
|
341 |
msgid "Minimum characters"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: core/classes/class-form-messages.php:177
|
345 |
msgid "Maximum characters"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: core/classes/class-form-messages.php:182
|
349 |
msgid "Minimum words"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: core/classes/class-form-messages.php:187
|
353 |
msgid "Maximum words"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: core/classes/class-form-messages.php:192
|
357 |
msgid "Question is optional"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: core/classes/class-form-messages.php:197
|
361 |
msgid "Question is required"
|
362 |
msgstr ""
|
363 |
|
364 |
+
#: core/classes/class-form-messages.php:202
|
365 |
msgid "Remaining submissions"
|
366 |
msgstr ""
|
367 |
|
918 |
msgid "This answer isn't long enough."
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: core/classes/class-wp-customize-form-manager.php:161
|
922 |
+
msgid "To publish your new form, add a <i>Forms</i> block anywhere your theme allows blocks to be added. If you're using an older theme or page builder, you might instead need to copy the form's shortcode and paste it into your site as your theme's author recommends."
|
|
|
|
|
|
|
|
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: core/classes/class-wp-customize-form-manager.php:321
|
926 |
msgid "The changes you made will be lost if you navigate away from this page."
|
927 |
msgstr ""
|
928 |
|
1043 |
msgstr ""
|
1044 |
|
1045 |
#: core/helpers/helper-activation.php:80
|
|
|
1046 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:49
|
1047 |
msgid "Email address"
|
1048 |
msgstr ""
|
3024 |
msgid "Max times the same answer can be submitted"
|
3025 |
msgstr ""
|
3026 |
|
3027 |
+
#: inc/classes/class-happyforms.php:80
|
3028 |
+
msgid "Trash submission if it contains words in"
|
3029 |
+
msgstr ""
|
3030 |
+
|
3031 |
+
#: inc/classes/class-happyforms.php:81
|
3032 |
+
msgid "Disallowed Comment Keys"
|
3033 |
+
msgstr ""
|
3034 |
+
|
3035 |
+
#: inc/classes/class-happyforms.php:87
|
3036 |
msgid "Upgrade"
|
3037 |
msgstr ""
|
3038 |
|
3039 |
+
#: inc/classes/class-happyforms.php:95
|
3040 |
msgid "Redirect to this page address (URL) after submission"
|
3041 |
msgstr ""
|
3042 |
|
3043 |
+
#: inc/classes/class-happyforms.php:96
|
3044 |
msgid "Search or type URL"
|
3045 |
msgstr ""
|
3046 |
|
3047 |
+
#: inc/classes/class-happyforms.php:102
|
3048 |
msgid "Shuffle order of fields"
|
3049 |
msgstr ""
|
3050 |
|
3051 |
+
#: inc/classes/class-happyforms.php:108
|
3052 |
msgid "Use reCAPTCHA"
|
3053 |
msgstr ""
|
3054 |
|
3055 |
+
#: inc/classes/class-happyforms.php:114
|
3056 |
msgid "Let submitters save a draft for set number of days"
|
3057 |
msgstr ""
|
3058 |
|
3059 |
+
#: inc/classes/class-happyforms.php:120
|
3060 |
msgid "Require submitters to review a submission"
|
3061 |
msgstr ""
|
3062 |
|
3063 |
+
#: inc/classes/class-happyforms.php:126
|
3064 |
msgid "Max number of submissions"
|
3065 |
msgstr ""
|
3066 |
|
3067 |
+
#: inc/classes/class-happyforms.php:132
|
3068 |
msgid "Erase submitter's personal data after set number of days"
|
3069 |
msgstr ""
|
3070 |
|
3071 |
+
#: inc/classes/class-happyforms.php:158
|
|
|
|
|
|
|
|
|
3072 |
msgid "Send abandonment email"
|
3073 |
msgstr ""
|
3074 |
|
3075 |
+
#: inc/classes/class-happyforms.php:172
|
3076 |
msgid "Checkboxes & Radios"
|
3077 |
msgstr ""
|
3078 |
|
3079 |
+
#: inc/classes/class-happyforms.php:178
|
3080 |
msgid "Rating"
|
3081 |
msgstr ""
|
3082 |
|
3083 |
+
#: inc/classes/class-happyforms.php:184
|
3084 |
msgid "Multi Step"
|
3085 |
msgstr ""
|
3086 |
|
3087 |
+
#: inc/classes/class-happyforms.php:198
|
3088 |
msgid "Form redirected after submission"
|
3089 |
msgstr ""
|
3090 |
|
3091 |
+
#: inc/classes/class-happyforms.php:203
|
3092 |
msgid "Form has reached its reply limit"
|
3093 |
msgstr ""
|
3094 |
|
3095 |
+
#: inc/classes/class-happyforms.php:208
|
3096 |
msgid "Submitter has returned to a draft"
|
3097 |
msgstr ""
|
3098 |
|
3099 |
+
#: inc/classes/class-happyforms.php:213
|
3100 |
msgid "Submitter is viewing review page"
|
3101 |
msgstr ""
|
3102 |
|
3103 |
+
#: inc/classes/class-happyforms.php:218
|
3104 |
msgid "Payment completed"
|
3105 |
msgstr ""
|
3106 |
|
3107 |
+
#: inc/classes/class-happyforms.php:223
|
3108 |
msgid "Payment failed"
|
3109 |
msgstr ""
|
3110 |
|
3111 |
+
#: inc/classes/class-happyforms.php:228
|
3112 |
msgid "Payment cancelled"
|
3113 |
msgstr ""
|
3114 |
|
3115 |
+
#: inc/classes/class-happyforms.php:233
|
3116 |
msgid "Previous page"
|
3117 |
msgstr ""
|
3118 |
|
3119 |
+
#: inc/classes/class-happyforms.php:238
|
3120 |
msgid "Redirect to page"
|
3121 |
msgstr ""
|
3122 |
|
3123 |
+
#: inc/classes/class-happyforms.php:243
|
3124 |
msgid "Print user submission"
|
3125 |
msgstr ""
|
3126 |
|
3127 |
+
#: inc/classes/class-happyforms.php:248
|
3128 |
msgid "Edit reply"
|
3129 |
msgstr ""
|
3130 |
|
3131 |
+
#: inc/classes/class-happyforms.php:253
|
3132 |
msgid "Clear saved draft reply"
|
3133 |
msgstr ""
|
3134 |
|
3135 |
+
#: inc/classes/class-happyforms.php:258
|
3136 |
msgid "Save draft reply"
|
3137 |
msgstr ""
|
3138 |
|
3139 |
+
#: inc/classes/class-happyforms.php:263
|
3140 |
msgid "Upload files"
|
3141 |
msgstr ""
|
3142 |
|
3143 |
+
#: inc/classes/class-happyforms.php:268
|
3144 |
msgid "Remove uploaded file"
|
3145 |
msgstr ""
|
3146 |
|
3147 |
+
#: inc/classes/class-happyforms.php:273
|
3148 |
msgid "Review reply"
|
3149 |
msgstr ""
|
3150 |
|
3151 |
+
#: inc/classes/class-happyforms.php:278
|
3152 |
msgid "Start drawing signature"
|
3153 |
msgstr ""
|
3154 |
|
3155 |
+
#: inc/classes/class-happyforms.php:283
|
3156 |
msgid "Start over drawing signature"
|
3157 |
msgstr ""
|
3158 |
|
3159 |
+
#: inc/classes/class-happyforms.php:288
|
3160 |
msgid "Clear drawn signature"
|
3161 |
msgstr ""
|
3162 |
|
3163 |
+
#: inc/classes/class-happyforms.php:293
|
3164 |
msgid "Done drawing signature"
|
3165 |
msgstr ""
|
3166 |
|
3167 |
+
#: inc/classes/class-happyforms.php:298
|
3168 |
msgid "Field answer reached its limit"
|
3169 |
msgstr ""
|
3170 |
|
3171 |
+
#: inc/classes/class-happyforms.php:303
|
3172 |
msgid "Coupon code invalid"
|
3173 |
msgstr ""
|
3174 |
|
3175 |
+
#: inc/classes/class-happyforms.php:308
|
3176 |
msgid "Required file isn't uploaded"
|
3177 |
msgstr ""
|
3178 |
|
3179 |
+
#: inc/classes/class-happyforms.php:313
|
3180 |
msgid "Required terms haven't been scrolled"
|
3181 |
msgstr ""
|
3182 |
|
3183 |
+
#: inc/classes/class-happyforms.php:318
|
3184 |
msgid "Field contains disallowed word"
|
3185 |
msgstr ""
|
3186 |
|
3187 |
+
#: inc/classes/class-happyforms.php:323
|
3188 |
msgid "Disallowed IP address or browser"
|
3189 |
msgstr ""
|
3190 |
|
3191 |
+
#: inc/classes/class-happyforms.php:328
|
3192 |
msgid "This file's size is too big"
|
3193 |
msgstr ""
|
3194 |
|
3195 |
+
#: inc/classes/class-happyforms.php:333
|
3196 |
msgid "This file's type not allowed"
|
3197 |
msgstr ""
|
3198 |
|
3199 |
+
#: inc/classes/class-happyforms.php:338
|
3200 |
msgid "A file with this name has already been uploaded"
|
3201 |
msgstr ""
|
3202 |
|
3203 |
+
#: inc/classes/class-happyforms.php:343
|
3204 |
msgid "User uploaded too few files"
|
3205 |
msgstr ""
|
3206 |
|
3207 |
+
#: inc/classes/class-happyforms.php:348
|
3208 |
msgid "Price is too low"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: inc/classes/class-happyforms.php:353
|
3212 |
msgid "Phone field country code label"
|
3213 |
msgstr ""
|
3214 |
|
3215 |
+
#: inc/classes/class-happyforms.php:358
|
3216 |
msgid "Phone field number label"
|
3217 |
msgstr ""
|
3218 |
|
3219 |
+
#: inc/classes/class-happyforms.php:363
|
3220 |
msgid "Total files uploaded"
|
3221 |
msgstr ""
|
3222 |
|
3223 |
+
#: inc/classes/class-happyforms.php:368
|
3224 |
msgid "Payment method"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
+
#: inc/classes/class-happyforms.php:373
|
3228 |
msgid "Pay what you want"
|
3229 |
msgstr ""
|
3230 |
|
3231 |
+
#: inc/classes/class-happyforms.php:378
|
3232 |
msgid "Submitter will be redirected to PayPal"
|
3233 |
msgstr ""
|
3234 |
|
3235 |
+
#: inc/classes/class-happyforms.php:383
|
3236 |
msgid "PayPal payment"
|
3237 |
msgstr ""
|
3238 |
|
3239 |
+
#: inc/classes/class-happyforms.php:388
|
3240 |
msgid "Stripe is processing payment"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
+
#: inc/classes/class-happyforms.php:393
|
3244 |
msgid "Stripe payment"
|
3245 |
msgstr ""
|
3246 |
|
3247 |
+
#: inc/classes/class-happyforms.php:398
|
3248 |
msgid "Stripe card field"
|
3249 |
msgstr ""
|
3250 |
|
3251 |
+
#: inc/classes/class-happyforms.php:403
|
3252 |
msgid "Card number"
|
3253 |
msgstr ""
|
3254 |
|
3255 |
+
#: inc/classes/class-happyforms.php:408
|
3256 |
msgid "Card expiration"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
+
#: inc/classes/class-happyforms.php:413
|
3260 |
msgid "Card security code"
|
3261 |
msgstr ""
|
3262 |
|
3263 |
+
#: inc/classes/class-happyforms.php:418
|
3264 |
msgid "Coupon field label"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
+
#: inc/classes/class-happyforms.php:423
|
3268 |
msgid "Apply coupon button label"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
+
#: inc/classes/class-happyforms.php:428
|
3272 |
msgid "Current page"
|
3273 |
msgstr ""
|
3274 |
|
3786 |
msgid "Pick a form"
|
3787 |
msgstr ""
|
3788 |
|
|
|
3789 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:45
|
3790 |
msgid "One last thing"
|
3791 |
msgstr ""
|
3792 |
|
|
|
3793 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:46
|
3794 |
msgid "We'll occasionally send you emails about plugin updates. And don't sweat it, you can unsubscribe anytime."
|
3795 |
msgstr ""
|
3796 |
|
|
|
3797 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:54
|
3798 |
msgid "Continue"
|
3799 |
msgstr ""
|
3800 |
|
|
|
3801 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:87
|
3802 |
+
msgid "You'll need to upgrade to get access to this"
|
3803 |
msgstr ""
|
3804 |
|
|
|
3805 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:90
|
3806 |
msgid "You're just a mouse click and a few key taps away from building better forms."
|
3807 |
msgstr ""
|
3808 |
|
|
|
3809 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:92
|
3810 |
msgid "Advanced features and integrations"
|
3811 |
msgstr ""
|
3812 |
|
|
|
3813 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:93
|
3814 |
msgid "Help from our friendly support team"
|
3815 |
msgstr ""
|
3816 |
|
|
|
3817 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:94
|
3818 |
msgid "Automatically transfer your free forms"
|
3819 |
msgstr ""
|
3820 |
|
|
|
3821 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:95
|
3822 |
msgid "New updates every second week"
|
3823 |
msgstr ""
|
3824 |
|
|
|
3825 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:97
|
3826 |
msgid "Ready to build better forms?"
|
3827 |
msgstr ""
|
3828 |
|
|
|
3829 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:101
|
3830 |
+
msgid "Learn More Now"
|
3831 |
msgstr ""
|
3832 |
|
|
|
3833 |
#: inc/assets/jsx/src/admin/dashboard-modals.js:102
|
3834 |
msgid "Nope, Maybe Later"
|
3835 |
msgstr ""
|
readme.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: contact form, contact form plugin, forms, form builder, custom form, intak
|
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 6.1
|
7 |
Requires PHP: 7.0
|
8 |
-
Stable tag: 1.21.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -160,6 +160,13 @@ And so you know, we don't outsource support. You can expect plain-talkin' help f
|
|
160 |
|
161 |
== Changelog ==
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
= November 30, 2022 =
|
164 |
|
165 |
Version 1.21.0 changelog:
|
@@ -1486,6 +1493,9 @@ Version 1.0.0 changelog:
|
|
1486 |
|
1487 |
== Upgrade Notice ==
|
1488 |
|
|
|
|
|
|
|
1489 |
= 1.21.0 =
|
1490 |
* New Heading, Paragraph, Media and Separator fields and form importer in Tools → Import screen.
|
1491 |
|
5 |
Requires at least: 5.0
|
6 |
Tested up to: 6.1
|
7 |
Requires PHP: 7.0
|
8 |
+
Stable tag: 1.21.1
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
160 |
|
161 |
== Changelog ==
|
162 |
|
163 |
+
= December 15, 2022 =
|
164 |
+
|
165 |
+
Version 1.21.1 changelog:
|
166 |
+
|
167 |
+
* Changed: Dashboard notice displayed after a new form is created has been reworded and made more informative.
|
168 |
+
* Changed: "Buttons" group in Messages tab has been split up for clearer separation of concerns.
|
169 |
+
|
170 |
= November 30, 2022 =
|
171 |
|
172 |
Version 1.21.0 changelog:
|
1493 |
|
1494 |
== Upgrade Notice ==
|
1495 |
|
1496 |
+
= 1.21.1 =
|
1497 |
+
* Dashboard notices and Messages tab improvements.
|
1498 |
+
|
1499 |
= 1.21.0 =
|
1500 |
* New Heading, Paragraph, Media and Separator fields and form importer in Tools → Import screen.
|
1501 |
|