PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 3.13.1
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v3.13.1
3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 2.8.16 2.8.17 All 260 releases
wpfunnels / admin / modules / setup-wizard / components / Content / PageBuilders.vue

PageBuilders.vue in WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell 3.13.1, at admin/modules/setup-wizard/components/Content/PageBuilders.vue

130 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <template>
2 <div class="wpfnl-mm-setup-section">
3 <div class="wpfnl-mm-setup-section-content wpfnl-mm-page-builders">
4 <h3 class="wpfnl-mm-setup-section-title">What Page Builder Would You Like To Use To Design Funnel Pages?</h3>
5 <div class="wpfnl-mm-woo-status">
6 <div
7 v-for="builder in builders"
8 :key="builder.id"
9 class="wpfnl-setup-plugins-card"
10 :class="{
11 'selected': selectedBuilder === builder.id,
12 'disabled': isProBuilder(builder.id) && !isBuilderInstalled(builder.id)
13 }"
14 @click="selectBuilder(builder.id)"
15 >
16 <span class="wpfnl-setup-plugin-selected" v-if="selectedBuilder === builder.id">
17 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">><path d="M12 5L6.5 10L4 7.72727" stroke="white" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
18 </span>
19
20 <span class="wpfnl-setup-pro-badge" v-if="isProBuilder(builder.id) && !isBuilderInstalled(builder.id)">
21 Not Installed
22 </span>
23
24 <img
25 :src="builder.image"
26 :alt="builder.name + ' Logo'"
27 >
28 <span class="wpfnl-setup-plugin-name">
29 {{ builder.name }}
30 </span>
31 </div>
32 </div>
33 </div>
34
35 <!-- Info Message About Page Builder Support -->
36 <div class="wpfnl-mm-page-builder-info">
37 <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none">><path d="M7.9987 14.6673C11.6806 14.6673 14.6654 11.6825 14.6654 8.00065C14.6654 4.31875 11.6806 1.33398 7.9987 1.33398C4.3168 1.33398 1.33203 4.31875 1.33203 8.00065C1.33203 11.6825 4.3168 14.6673 7.9987 14.6673Z" stroke="#f68524" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"/><path d="M8 10.6667V8" stroke="#f68524" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"/><path d="M8 5.33301H8.00667" stroke="#f68524" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"/></svg>
38 <p>WPFunnels works with all page builders, so don't worry if your page builder is not in the list.</p>
39 </div>
40 </div>
41 </template>
42
43 <script>
44 export default {
45 name: 'PageBuilders',
46 props: {
47 selectedBuilder: {
48 type: String,
49 default: ''
50 },
51 builderStatuses: {
52 type: Object,
53 default: () => ({})
54 }
55 },
56 data() {
57 return {
58 // Pro builders that cannot be installed from the WordPress repo
59 proBuilders: ['oxygen', 'bricks', 'divi'],
60 builders: [
61 {
62 id: 'gutenberg',
63 name: 'Gutenberg',
64 image: window?.setup_wizard_obj?.gb_builder_img || '',
65 slug: '',
66 basename: '',
67 isBuiltIn: true
68 },
69 {
70 id: 'elementor',
71 name: 'Elementor',
72 image: window?.setup_wizard_obj?.elementor_img || '',
73 slug: 'elementor',
74 basename: 'elementor/elementor.php'
75 },
76 {
77 id: 'bricks',
78 name: 'Bricks',
79 image: window?.setup_wizard_obj?.bricks_img || '',
80 slug: 'bricks',
81 basename: 'bricks',
82 isTheme: true
83 },
84 {
85 id: 'divi',
86 name: 'Divi',
87 image: window?.setup_wizard_obj?.divi_img || '',
88 slug: 'divi',
89 basename: 'Divi',
90 isTheme: true
91 },
92 {
93 id: 'oxygen',
94 name: 'Oxygen',
95 image: window?.setup_wizard_obj?.oxygen_img || '',
96 slug: 'oxygen',
97 basename: 'oxygen/functions.php'
98 },
99 {
100 id: 'others',
101 name: 'Others',
102 image: window?.setup_wizard_obj?.others_builder_img || '',
103 slug: '',
104 basename: '',
105 isBuiltIn: true
106 }
107 ]
108 }
109 },
110 methods: {
111 isProBuilder(builderId) {
112 return this.proBuilders.includes(builderId);
113 },
114
115 isBuilderInstalled(builderId) {
116 const status = this.builderStatuses[builderId];
117 return status ? status.installed : false;
118 },
119
120 selectBuilder(builderId) {
121 // Prevent selecting pro builders that are not installed
122 if (this.isProBuilder(builderId) && !this.isBuilderInstalled(builderId)) {
123 return;
124 }
125 this.$emit('update:selectedBuilder', builderId);
126 }
127 }
128 }
129 </script>
130