PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / trunk
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments vtrunk
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 2 years ago InstallServiceProvider.php 3 years ago
InstallService.php
162 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 array(
24 'checkout' => array(
25 'name' => _x( 'checkout', 'Form slug', 'surecart' ),
26 'title' => _x( 'Checkout', 'Form title', 'surecart' ),
27 'content' => '<!-- wp:surecart/form {"mode":"test"} -->
28
29 <!-- wp:surecart/heading {"title":"Contact Information"} -->
30 <sc-heading>Contact Information<span slot="description"></span><span slot="end"></span></sc-heading>
31 <!-- /wp:surecart/heading -->
32
33 <!-- wp:surecart/name -->
34 <sc-input label="Name" autocomplete="false" inputmode="false" spellcheck="false" name="name" type="text" class="wp-block-surecart-name"></sc-input>
35 <!-- /wp:surecart/name -->
36
37 <!-- wp:surecart/email -->
38 <sc-input label="Email" autocomplete="false" inputmode="false" spellcheck="false" type="email" name="email" required class="wp-block-surecart-email"></sc-input>
39 <!-- /wp:surecart/email -->
40
41 <!-- wp:spacer {"height":20} -->
42 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
43 <!-- /wp:spacer -->
44
45 <!-- wp:surecart/heading {"title":"Credit Card"} -->
46 <sc-heading>Credit Card<span slot="description"></span><span slot="end"></span></sc-heading>
47 <!-- /wp:surecart/heading -->
48
49 <!-- wp:surecart/payment {"secure_notice":"This is a secure, encrypted payment"} -->
50 <sc-payment secure-notice="This is a secure, encrypted payment" class="wp-block-surecart-payment"></sc-payment>
51 <!-- /wp:surecart/payment -->
52
53 <!-- wp:spacer {"height":20} -->
54 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
55 <!-- /wp:spacer -->
56
57 <!-- wp:surecart/heading {"title":"Totals"} -->
58 <sc-heading>Totals<span slot="description"></span><span slot="end"></span></sc-heading>
59 <!-- /wp:surecart/heading -->
60
61 <!-- wp:surecart/totals {"collapsible":false,"collapsed":false} -->
62 <sc-order-summary class="wp-block-surecart-totals"><!-- wp:surecart/divider -->
63 <sc-divider></sc-divider>
64 <!-- /wp:surecart/divider -->
65
66 <!-- wp:surecart/line-items -->
67 <sc-line-items removable="1" editable="1" class="wp-block-surecart-line-items"></sc-line-items>
68 <!-- /wp:surecart/line-items -->
69
70 <!-- wp:surecart/divider -->
71 <sc-divider></sc-divider>
72 <!-- /wp:surecart/divider -->
73
74 <!-- wp:surecart/subtotal -->
75 <sc-line-item-total class="sc-subtotal" total="subtotal" class="wp-block-surecart-subtotal"><span slot="description">Subtotal</span></sc-line-item-total>
76 <!-- /wp:surecart/subtotal -->
77
78 <!-- wp:surecart/coupon {"text":"Add Coupon Code","button_text":"Apply"} -->
79 <sc-coupon-form label="Add Coupon Code" button-text="Apply"></sc-coupon-form>
80 <!-- /wp:surecart/coupon -->
81
82 <!-- wp:surecart/divider -->
83 <sc-divider></sc-divider>
84 <!-- /wp:surecart/divider -->
85
86 <!-- wp:surecart/total -->
87 <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>
88 <!-- /wp:surecart/total --></sc-order-summary>
89 <!-- /wp:surecart/totals -->
90
91 <!-- wp:spacer {"height":20} -->
92 <div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
93 <!-- /wp:spacer -->
94
95 <!-- wp:surecart/submit {"show_total":true,"full":true} -->
96 <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>
97 <!-- /wp:surecart/submit -->
98
99 <!-- /wp:surecart/form -->
100 ',
101 'post_type' => 'sc_form',
102 ),
103 )
104 );
105
106 $this->createPosts( $forms );
107 }
108
109 /**
110 * Create pages that the plugin relies on, storing page IDs in variables.
111 *
112 * @return void
113 */
114 public function createPages() {
115 $form = \SureCart::forms()->getDefault();
116 $pages = apply_filters(
117 'surecart/create_pages',
118 array(
119 'checkout' => array(
120 'name' => _x( 'checkout', 'Page slug', 'surecart' ),
121 'title' => _x( 'Checkout', 'Page title', 'surecart' ),
122 'content' => '<!-- wp:surecart/checkout-form {"id":' . (int) $form->ID . '} -->
123 <!-- wp:surecart/form {"mode":"test"} /-->
124 <!-- /wp:surecart/checkout-form -->',
125 ),
126 'order-confirmation' => array(
127 'name' => _x( 'order-confirmation', 'Page slug', 'surecart' ),
128 'title' => _x( 'Thank you!', 'Page title', 'surecart' ),
129 'content' => '<!-- wp:surecart/order-confirmation --> <!-- /wp:surecart/order-confirmation -->',
130 ),
131 'dashboard' => array(
132 'name' => _x( 'customer-dashboard', 'Page slug', 'surecart' ),
133 'title' => _x( 'Dashboard', 'Page title', 'surecart' ),
134 'content' => '<!-- wp:surecart/dashboard --> <!-- /wp:surecart/dashboard -->',
135 ),
136 )
137 );
138
139 $this->createPosts( $pages );
140 }
141
142 /**
143 * Create posts from an array of post data.
144 *
145 * @param array $posts Array of post data.
146 * @return void
147 */
148 public function createPosts( $posts ) {
149 foreach ( $posts as $key => $post ) {
150 \SureCart::pages()->findOrCreate(
151 esc_sql( $post['name'] ),
152 $key,
153 $post['title'],
154 $post['content'],
155 ! empty( $post['parent'] ) ? \SureCart::pages()->findOrCreate( $post['parent'] ) : '',
156 ! empty( $post['post_status'] ) ? $post['post_status'] : 'publish',
157 ! empty( $post['post_type'] ) ? $post['post_type'] : 'page'
158 );
159 }
160 }
161 }
162