PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Install / InstallService.php
surecart / app / src / Install Last commit date
InstallService.php 3 years ago InstallServiceProvider.php 3 years ago
InstallService.php
166 lines
1 <?php
2
3 namespace SureCart\Install;
4
5 /**
6 * Service for installation related functions.
7 */
8 class InstallService {
9
10 public function install() {
11 $this->createCheckoutForm();
12 $this->createPages();
13 }
14
15 /**
16 * Create the main checkout form.
17 *
18 * @return void
19 */
20 public function createCheckoutForm() {
21 $forms = apply_filters(
22 'surecart/create_forms',
23 [
24 'checkout' => [
25 'name' => _x( 'checkout', 'Form slug', 'surecart' ),
26 'title' => _x( 'Checkout', 'Form title', 'surecart' ),
27 'content' => '<!-- wp:surecart/form -->
28
29 <!-- wp:surecart/express-payment -->
30 <sc-express-payment divider-text="or" class="wp-block-surecart-express-payment"></sc-express-payment>
31 <!-- /wp:surecart/express-payment -->
32
33 <!-- wp:surecart/heading {"title":"Contact Information"} -->
34 <sc-heading>Contact Information<span slot="description"></span><span slot="end"></span></sc-heading>
35 <!-- /wp:surecart/heading -->
36
37 <!-- wp:surecart/name -->
38 <sc-input label="Name" autocomplete="false" inputmode="false" spellcheck="false" name="name" type="text" class="wp-block-surecart-name"></sc-input>
39 <!-- /wp:surecart/name -->
40
41 <!-- wp:surecart/email -->
42 <sc-input label="Email" autocomplete="false" inputmode="false" spellcheck="false" type="email" name="email" required class="wp-block-surecart-email"></sc-input>
43 <!-- /wp:surecart/email -->
44
45 <!-- wp:spacer {"height":20} -->
46 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
47 <!-- /wp:spacer -->
48
49 <!-- wp:surecart/heading {"title":"Credit Card"} -->
50 <sc-heading>Credit Card<span slot="description"></span><span slot="end"></span></sc-heading>
51 <!-- /wp:surecart/heading -->
52
53 <!-- wp:surecart/payment {"secure_notice":"This is a secure, encrypted payment"} -->
54 <sc-payment secure-notice="This is a secure, encrypted payment" class="wp-block-surecart-payment"></sc-payment>
55 <!-- /wp:surecart/payment -->
56
57 <!-- wp:spacer {"height":20} -->
58 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
59 <!-- /wp:spacer -->
60
61 <!-- wp:surecart/heading {"title":"Totals"} -->
62 <sc-heading>Totals<span slot="description"></span><span slot="end"></span></sc-heading>
63 <!-- /wp:surecart/heading -->
64
65 <!-- wp:surecart/totals {"collapsible":false,"collapsed":false} -->
66 <sc-order-summary class="wp-block-surecart-totals"><!-- wp:surecart/divider -->
67 <sc-divider></sc-divider>
68 <!-- /wp:surecart/divider -->
69
70 <!-- wp:surecart/line-items -->
71 <sc-line-items removable="1" editable="1" class="wp-block-surecart-line-items"></sc-line-items>
72 <!-- /wp:surecart/line-items -->
73
74 <!-- wp:surecart/divider -->
75 <sc-divider></sc-divider>
76 <!-- /wp:surecart/divider -->
77
78 <!-- wp:surecart/subtotal -->
79 <sc-line-item-total class="sc-subtotal" total="subtotal" class="wp-block-surecart-subtotal"><span slot="description">Subtotal</span></sc-line-item-total>
80 <!-- /wp:surecart/subtotal -->
81
82 <!-- wp:surecart/coupon {"text":"Add Coupon Code","button_text":"Apply"} -->
83 <sc-coupon-form label="Add Coupon Code" button-text="Apply"></sc-coupon-form>
84 <!-- /wp:surecart/coupon -->
85
86 <!-- wp:surecart/divider -->
87 <sc-divider></sc-divider>
88 <!-- /wp:surecart/divider -->
89
90 <!-- wp:surecart/total -->
91 <sc-line-item-total total="total" size="large" show-currency="1" class="wp-block-surecart-total"><span slot="description">Total</span><span slot="subscription-title">Total Due Today</span></sc-line-item-total>
92 <!-- /wp:surecart/total --></sc-order-summary>
93 <!-- /wp:surecart/totals -->
94
95 <!-- wp:spacer {"height":20} -->
96 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
97 <!-- /wp:spacer -->
98
99 <!-- wp:surecart/submit {"show_total":true,"full":true} -->
100 <sc-button submit="1" type="primary" full="1" size="large" class="wp-block-surecart-submit"><svg slot="prefix" xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none" viewbox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"></path></svg>Purchase<span> <sc-total></sc-total></span></sc-button>
101 <!-- /wp:surecart/submit -->
102
103 <!-- /wp:surecart/form -->
104 ',
105 'post_type' => 'sc_form',
106 ],
107 ]
108 );
109
110 $this->createPosts( $forms );
111 }
112
113 /**
114 * Create pages that the plugin relies on, storing page IDs in variables.
115 *
116 * @return void
117 */
118 public function createPages() {
119 $form = \SureCart::forms()->getDefault();
120 $pages = apply_filters(
121 'surecart/create_pages',
122 array(
123 'checkout' => [
124 'name' => _x( 'checkout', 'Page slug', 'surecart' ),
125 'title' => _x( 'Checkout', 'Page title', 'surecart' ),
126 'content' => '<!-- wp:surecart/checkout-form {"id":' . (int) $form->ID . '} -->
127 <!-- wp:surecart/form /-->
128 <!-- /wp:surecart/checkout-form -->',
129 ],
130 'order-confirmation' => [
131 'name' => _x( 'order-confirmation', 'Page slug', 'surecart' ),
132 'title' => _x( 'Thank you!', 'Page title', 'surecart' ),
133 'content' => '<!-- wp:surecart/order-confirmation --> <!-- /wp:surecart/order-confirmation -->',
134 ],
135 'dashboard' => [
136 'name' => _x( 'customer-dashboard', 'Page slug', 'surecart' ),
137 'title' => _x( 'Dashboard', 'Page title', 'surecart' ),
138 'content' => '<!-- wp:surecart/dashboard --> <!-- /wp:surecart/dashboard -->',
139 ],
140 )
141 );
142
143 $this->createPosts( $pages );
144 }
145
146 /**
147 * Create posts from an array of post data.
148 *
149 * @param array $posts Array of post data.
150 * @return void
151 */
152 public function createPosts( $posts ) {
153 foreach ( $posts as $key => $post ) {
154 \SureCart::pages()->findOrCreate(
155 esc_sql( $post['name'] ),
156 $key,
157 $post['title'],
158 $post['content'],
159 ! empty( $post['parent'] ) ? \SureCart::pages()->findOrCreate( $post['parent'] ) : '',
160 ! empty( $post['post_status'] ) ? $post['post_status'] : 'publish',
161 ! empty( $post['post_type'] ) ? $post['post_type'] : 'page'
162 );
163 }
164 }
165 }
166