PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 1.1.4
ShopBuilder – WooCommerce Builder For Elementor v1.1.4
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Helpers/Installation.php +73 -150 2.1.31.1.4 View file →
@@ -1,150 +1,73 @@
1 -<?php
2 -/**
3 - * Activation Helpers class
4 - *
5 - * @package RadiusTheme\SB
6 - */
7 -
8 -namespace RadiusTheme\SB\Helpers;
9 -
10 -use WC_Product_Simple;
11 -use RadiusTheme\SB\Models\Settings;
12 -use RadiusTheme\SB\Models\ExtraSettings;
13 -
14 -// Do not allow directly accessing this file.
15 -if ( ! defined( 'ABSPATH' ) ) {
16 - exit( 'This script cannot be accessed directly.' );
17 -}
18 -
19 -/**
20 - * Activation Helpers class
21 - */
22 -class Installation {
23 - /**
24 - * Init.
25 - *
26 - * @return void
27 - */
28 - public static function init() {
29 - add_action( 'init', [ __CLASS__, 'check_version' ], 5 );
30 - }
31 -
32 - /**
33 - * Check version.
34 - *
35 - * @return int|void
36 - */
37 - public static function check_version() {
38 - $version = ExtraSettings::instance()->get_option( 'rtsb_version' ) ?? get_option( 'rtsb_version' );
39 - if ( version_compare( $version, RTSB_VERSION, '<' ) ) {
40 - if ( ! $version ) {
41 - self::set_default_options();
42 - if ( ! Fns::get_product() ) {
43 - return self::create_wc_product();
44 - }
45 - }
46 - self::update_rtsb_version();
47 - }
48 - }
49 -
50 - /**
51 - * Activation.
52 - *
53 - * @return void
54 - */
55 - public static function activate() {
56 - if ( ! is_blog_installed() ) {
57 - return;
58 - }
59 -
60 - if ( ExtraSettings::instance()->get_option( 'first_instilled_version', false ) ) {
61 - ExtraSettings::instance()->set_option( 'first_instilled_version', RTSB_VERSION );
62 - }
63 -
64 - if ( ! ExtraSettings::instance()->get_option( 'rtsb_plugin_activation_time', false ) ) {
65 - ExtraSettings::instance()->set_option( 'rtsb_plugin_activation_time', strtotime( 'now' ) );
66 - }
67 -
68 - // Check if we are not already running this routine.
69 - if ( 'yes' === get_transient( 'rtsb_installing' ) ) {
70 - return;
71 - }
72 -
73 - // If we made it till here nothing is running yet, lets set the transient now.
74 - set_transient( 'rtsb_installing', 'yes', MINUTE_IN_SECONDS * 10 );
75 - delete_transient( 'rtsb_installing' );
76 - }
77 -
78 - /**
79 - * Update version.
80 - *
81 - * @return void
82 - */
83 - private static function update_rtsb_version() {
84 - ExtraSettings::instance()->set_option( 'rtsb_version', RTSB_VERSION );
85 - }
86 -
87 - /**
88 - * Deactivation.
89 - *
90 - * @return void
91 - */
92 - public static function deactivation() {
93 - delete_option( 'shopbuilder_permalinks_flushed' );
94 - }
95 -
96 - /**
97 - * Set default options.
98 - *
99 - * @return void
100 - */
101 - public static function set_default_options() {
102 - $sections = Settings::instance()->get_sections();
103 - foreach ( $sections as $sections_id => $section ) {
104 - $rawOptions = [];
105 - if ( ! empty( $section['list'] ) ) {
106 - foreach ( $section['list'] as $blocks_id => $blocks ) {
107 - if ( ! rtsb()->has_pro() && 'free' !== ( $blocks['package'] ?? '' ) ) {
108 - continue;
109 - }
110 -
111 - $rawOptions['active'] = $blocks['active'] ?? null;
112 -
113 - if ( ! empty( $blocks['fields'] ) ) {
114 - foreach ( $blocks['fields'] as $field_id => $field ) {
115 - $type = 'array' === gettype( $field['value'] ) ? [] : '';
116 - $rawOptions[ $field_id ] = ! empty( $field['value'] ) ? $field['value'] : $type;
117 - }
118 - }
119 -
120 - Fns::set_options( $sections_id, $blocks_id, $rawOptions );
121 - }
122 - }
123 - }
124 - }
125 -
126 - /**
127 - * Create product.
128 - *
129 - * @return int
130 - */
131 - public static function create_wc_product() {
132 -
133 - $product = new WC_Product_Simple();
134 - $product->set_name( 'Confirm at least one product is created before deleting' );
135 - $product->set_description( 'This is a ShopBuilder demo preview product' );
136 - $product->set_short_description( 'This is a ShopBuilder product' );
137 - $product->set_status( 'draft' );
138 -
139 - $product->set_regular_price( 50 );
140 - $product->set_sale_price( 49 );
141 - $product->set_price( 49 );
142 -
143 - $product->set_sku( 'SAMPLE-001' );
144 -
145 - $product->set_manage_stock( false );
146 - $product->set_stock_status( 'instock' );
147 -
148 - return $product->save();
149 - }
150 -}
1 +<?php
2 +
3 +namespace RadiusTheme\SB\Helpers;
4 +
5 +// Do not allow directly accessing this file.
6 +use RadiusTheme\SB\Models\DataModel;
7 +use RadiusTheme\SB\Models\Settings;
8 +
9 +if ( ! defined( 'ABSPATH' ) ) {
10 + exit( 'This script cannot be accessed directly.' );
11 +}
12 +
13 +class Installation {
14 +
15 + public static function init(){
16 + add_action( 'init', [ __CLASS__, 'check_version' ], 5 );
17 + }
18 +
19 + public static function check_version() {
20 + if ( version_compare( get_option( 'rtsb_version' ), RTSB_VERSION, '<' ) ) {
21 + self::activate();
22 + }
23 + }
24 +
25 + public static function activate() {
26 + if ( ! is_blog_installed() ) {
27 + return;
28 + }
29 +
30 + // Check if we are not already running this routine.
31 + if ( 'yes' === get_transient( 'rtsb_installing' ) ) {
32 + return;
33 + }
34 +
35 + // If we made it till here nothing is running yet, lets set the transient now.
36 + set_transient( 'rtsb_installing', 'yes', MINUTE_IN_SECONDS * 10 );
37 +
38 + if ( ! get_option( 'rtsb_version' ) ) {
39 + self::set_default_options();
40 + }
41 +
42 + self::update_rtsb_version();
43 +
44 + delete_transient( 'rtsb_installing' );
45 + }
46 +
47 + private static function update_rtsb_version() {
48 + update_option( 'rtsb_version', RTSB_VERSION );
49 + }
50 +
51 + public static function deactivation() { }
52 +
53 + public static function set_default_options(){
54 + $sections = Settings::instance()->get_sections();
55 + foreach ( $sections as $sections_id => $section ) {
56 + $rawOptions = [];
57 + if ( ! empty( $section['list'] ) ) {
58 + foreach ( $section['list'] as $blocks_id => $blocks) {
59 + if( ! empty( $blocks['active'] ) ){
60 + $rawOptions['active'] = $blocks['active'];
61 + }
62 + foreach ( $blocks['fields'] as $field_id => $field) {
63 + $type = 'array' === gettype( $field['value'] ) ? [] : '' ;
64 + $rawOptions[$field_id] = ! empty( $field['value'] ) ? $field['value'] : $type;
65 + }
66 + Fns::set_options( $sections_id, $blocks_id, $rawOptions );
67 + }
68 + }
69 + }
70 + }
71 +
72 +
73 +}