PluginProbe
The Innovative Form Builder – IvyForms / 1.5
The Innovative Form Builder – IvyForms v1.5
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
← All changes | backend/src/Services/Integrations/IntegrationService.php +94 -11 1.4 → 1.5 View file →
@@ -3,8 +3,9 @@
3 3 namespace IvyForms\Services\Integrations;
4 4
5 5 use IvyForms\Common\Exceptions\InvalidArgumentException;
6 6 use IvyForms\Services\GoogleSheets\Hooks\InitializationHook as GoogleSheetsInitializationHook;
7 +use IvyForms\Services\Payment\PaymentsFeature;
7 8
8 9 /**
9 10 * Integration Service
10 11 *
@@ -95,8 +96,10 @@
95 96 ],
96 97 ],
97 98 ]);
98 99
100 + $this->registerPageBuilderIntegrations();
101 +
99 102 // Register Pro integrations as placeholders
100 103 // These will be shown with "Upgrade" button when Pro is not installed
101 104 // When Pro is installed, these will be overwritten by Pro's registrar
102 105
@@ -130,19 +133,19 @@
130 133 ],
131 134 ],
132 135 ]);
133 136
134 - // Zapier Integration (Pro - Growth) — hidden in Lite until ready; Pro re-registers as coming soon
135 -// $this->registry->register('zapier', [
136 -// 'label' => 'zapier_label',
137 -// 'component' => 'ZapierIntegrationSettings',
138 -// 'icon' => 'zapier',
139 -// 'description' => 'zapier_description',
140 -// 'category' => 'Automation',
141 -// 'requiresAuth' => false,
142 -// 'hasGlobalSettings' => true,
143 -// 'plan' => 'growth',
144 -// ]);
137 + // Zapier Integration (Pro - Growth)
138 + $this->registry->register('zapier', [
139 + 'label' => 'zapier_label',
140 + 'component' => 'ZapierIntegrationSettings',
141 + 'icon' => 'zapier',
142 + 'description' => 'zapier_description',
143 + 'category' => 'Automation',
144 + 'requiresAuth' => false,
145 + 'hasGlobalSettings' => true,
146 + 'plan' => 'growth',
147 + ]);
145 148
146 149 // Public API Integration (Pro - Agency)
147 150 $this->registry->register('public-api', [
148 151 'label' => 'public_api_integration_label',
@@ -162,8 +165,10 @@
162 165 ],
163 166 ],
164 167 ]);
165 168
169 + $this->registerPaymentIntegrations();
170 +
166 171 // Salesforce Integration (Pro - Agency)
167 172 // $this->registry->register('salesforce', [
168 173 // 'label' => 'salesforce_label',
169 174 // 'component' => 'SalesforceIntegrationSettings',
@@ -190,7 +195,85 @@
190 195 'type' => 'boolean',
191 196 'default' => false,
192 197 ],
193 198 ],
199 + ]);
200 + }
201 +
202 + /**
203 + * Register page builder integrations (Lite)
204 + *
205 + * These are informational cards only: forms are embedded through the builder itself,
206 + * so there is nothing to enable or configure — the card just links to the documentation.
207 + *
208 + * @return void
209 + * @throws InvalidArgumentException
210 + */
211 + private function registerPageBuilderIntegrations(): void
212 + {
213 + $pageBuilderSlugs = ['elementor', 'divi', 'gutenberg'];
214 +
215 + foreach ($pageBuilderSlugs as $slug) {
216 + $this->registry->register($slug, [
217 + 'label' => $slug . '_label',
218 + 'icon' => $slug,
219 + 'description' => $slug . '_description',
220 + 'category' => 'Page Builders',
221 + 'plan' => 'lite',
222 + 'docsOnly' => true,
223 + 'hasGlobalSettings' => false,
224 + 'hasFormSettings' => false,
225 + 'learnMoreUrl' => 'https://ivyforms.com/documentation/',
226 + ]);
227 + }
228 + }
229 +
230 + /**
231 + * Payment integrations (Square / Stripe / PayPal)
232 + *
233 + * While the payments feature is not released, the cards are shown as "Coming soon":
234 + * no toggle, no settings and no form-builder tab (see PaymentsFeature).
235 + */
236 + private function registerPaymentIntegrations(): void
237 + {
238 + $comingSoon = !PaymentsFeature::isEnabled();
239 +
240 + $this->registry->register('square', [
241 + 'label' => 'square_label',
242 + 'component' => 'SquareIntegrationSettings',
243 + 'icon' => 'square',
244 + 'description' => 'square_description',
245 + 'category' => 'Payment',
246 + 'requiresAuth' => true,
247 + 'hasGlobalSettings' => true,
248 + 'plan' => 'lite',
249 + 'learnMoreUrl' => 'https://ivyforms.com/documentation/',
250 + 'comingSoon' => $comingSoon,
251 + ]);
252 +
253 + $this->registry->register('stripe', [
254 + 'label' => 'stripe_label',
255 + 'component' => 'StripeIntegrationSettings',
256 + 'icon' => 'stripe',
257 + 'description' => 'stripe_description',
258 + 'category' => 'Payment',
259 + 'requiresAuth' => true,
260 + 'hasGlobalSettings' => true,
261 + 'plan' => 'essentials',
262 + 'learnMoreUrl' => 'https://ivyforms.com/documentation/',
263 + 'comingSoon' => $comingSoon,
264 + ]);
265 +
266 + $this->registry->register('paypal', [
267 + 'label' => 'paypal_label',
268 + 'component' => 'PaypalIntegrationSettings',
269 + 'icon' => 'paypal',
270 + 'description' => 'paypal_description',
271 + 'category' => 'Payment',
272 + 'requiresAuth' => true,
273 + 'hasGlobalSettings' => true,
274 + 'plan' => 'essentials',
275 + 'learnMoreUrl' => 'https://ivyforms.com/documentation/',
276 + 'comingSoon' => $comingSoon,
194 277 ]);
195 278 }
196 279 }