PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.0
4.5.1 4.5.0 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 / Activation / ActivationService.php
surecart / app / src / Activation Last commit date
ActivationService.php 1 month ago ActivationServiceProvider.php 1 year ago DeactivationSurveyForm.php 6 months ago
ActivationService.php
153 lines
1 <?php
2 namespace SureCart\Activation;
3
4 use SureCart\Integrations\NpsSurvey\NpsSurveyNotice;
5 use SureCart\Models\RegisteredWebhook;
6
7 /**
8 * Service for plugin activation.
9 */
10 class ActivationService {
11 /**
12 * Holds the roles service.
13 *
14 * @var \SureCart\Permissions\RolesService
15 */
16 protected $roles = null;
17
18 /**
19 * Holds the roles service.
20 *
21 * @var \SureCart\WordPress\Pages\PageSeeder
22 */
23 protected $seeder = null;
24
25 /**
26 * Holds the salt service.
27 *
28 * @var \SureCart\Permissions\SureCartSaltService
29 */
30 protected $salt = null;
31
32 /**
33 * Get dependencies for this service.
34 *
35 * @param \SureCart\Permissions\RolesService $roles Roles service.
36 * @param \SureCart\WordPress\Pages\PageSeeder $seeder Seeder service.
37 * @param \SureCart\Permissions\SureCartSaltService $salt Salt service.
38 */
39 public function __construct( \SureCart\Permissions\RolesService $roles, \SureCart\WordPress\Pages\PageSeeder $seeder, \SureCart\Permissions\SureCartSaltService $salt ) {
40 $this->roles = $roles;
41 $this->seeder = $seeder;
42 $this->salt = $salt;
43 }
44
45 /**
46 * Bootstrap.
47 *
48 * @return void
49 */
50 public function bootstrap() {
51 register_activation_hook( SURECART_PLUGIN_FILE, [ $this, 'activate' ] );
52 register_deactivation_hook( SURECART_PLUGIN_FILE, [ $this, 'deactivate' ] );
53 }
54
55 /**
56 * Create roles on plugin activation.
57 *
58 * @return void
59 */
60 public function activate() {
61 // Create roles.
62 $this->roles->create();
63
64 // Seed pages and forms.
65 $this->seeder->seed();
66
67 // Add the encryption key to the wp-config.php file.
68 $this->salt->write();
69 }
70
71 /**
72 * On deactivation logic.
73 *
74 * @return void
75 */
76 public function deactivate() {
77 // clear webhooks.
78 RegisteredWebhook::delete();
79 }
80
81 /**
82 * Remove roles and all data.
83 *
84 * @return void
85 */
86 public function uninstall() {
87 // remove roles.
88 $this->roles->delete();
89 // remove pages that were automatically seeded.
90 $this->seeder->delete();
91 // remove all forms.
92 $this->removeFormPosts();
93 // remove all options from the options table.
94 $this->removeOptions();
95 // remove all tables.
96 $this->removeTables();
97 }
98
99 /**
100 * Remove all tables.
101 *
102 * @return void
103 */
104 public function removeTables() {
105 // Delete the integration table.
106 $integrations = new \SureCart\Database\Tables\Integrations( new \SureCart\Database\Table() );
107 $integrations->uninstall();
108 }
109
110 /**
111 * Remove all posts from our post type.
112 *
113 * @return void
114 */
115 public function removeFormPosts() {
116 // remove all form posts.
117 $form_ids = get_posts(
118 [
119 'post_type' => 'sc_form',
120 'numberposts' => -1,
121 'fields' => 'ids',
122 ]
123 );
124 foreach ( $form_ids as $form_id ) {
125 wp_delete_post( $form_id, true );
126 }
127 }
128
129 /**
130 * Remove all our options from the options table.
131 *
132 * @return void
133 */
134 public function removeOptions() {
135 delete_option( 'surecart_registered_webhook' );
136 delete_option( 'surecart_previous_webhook' );
137 delete_option( 'surecart_order-confirmation_page_id' );
138 delete_option( 'surecart_dashboard_page_id' );
139 delete_option( 'surecart_checkout_sc_form_id' );
140 delete_option( 'surecart_use_esm_loader' );
141 delete_option( 'surecart_checkout_page_id' );
142 delete_option( 'sc_api_token' );
143 delete_option( 'sc_previous_account' );
144 delete_option( 'sc_uninstall' );
145 delete_option( 'surecart_order_bump_design' );
146 delete_option( NpsSurveyNotice::LAST_SUBMITTED_OPTION );
147 delete_option( NpsSurveyNotice::NPS_SURVEY_ID );
148 delete_option( 'surecart_mcp_abilities_enabled' );
149 delete_option( 'surecart_mcp_edit_abilities_enabled' );
150 delete_option( 'surecart_mcp_delete_abilities_enabled' );
151 }
152 }
153