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 / Controllers / Admin / Settings / BaseSettings.php
surecart / app / src / Controllers / Admin / Settings Last commit date
AbandonedCheckoutSettings.php 3 years ago AccountSettings.php 3 years ago AdvancedSettings.php 3 years ago BaseSettings.php 2 years ago BrandSettings.php 3 years ago CacheSettings.php 3 years ago ConnectionSettings.php 3 years ago CustomerSettings.php 3 years ago ExportSettings.php 3 years ago OrderSettings.php 3 years ago ProcessorsSettings.php 3 years ago ShippingProfileSettings.php 3 years ago ShippingSettings.php 3 years ago SubscriptionPreservationSettings.php 3 years ago SubscriptionSettings.php 3 years ago TaxRegionSettings.php 3 years ago TaxSettings.php 3 years ago UpgradeSettings.php 3 years ago
BaseSettings.php
150 lines
1 <?php
2
3 namespace SureCart\Controllers\Admin\Settings;
4
5 use SureCart\Models\Processor;
6 use SureCart\Support\Currency;
7 use SureCart\Support\TimeDate;
8
9 /**
10 * Controls the settings page.
11 */
12 abstract class BaseSettings {
13 /**
14 * Script handles for pages
15 *
16 * @var array
17 */
18 protected $scripts = [];
19
20 /**
21 * The template for the page.
22 *
23 * @var string
24 */
25 protected $template = 'admin/settings-page';
26
27 /**
28 * Additional dependencies for this page.
29 *
30 * @var array
31 */
32 protected $dependencies = [];
33
34 /**
35 * Tabs for the page.
36 *
37 * @var array
38 */
39 protected $tabs = [];
40
41 /**
42 * Constructor.
43 */
44 public function __construct() {
45 $this->tabs = [
46 'brand' => __( 'Design & Branding', 'surecart' ),
47 'order' => __( 'Orders & Receipts', 'surecart' ),
48 'abandoned_checkout' => __( 'Abandoned Checkout', 'surecart' ),
49 'customer_notification_protocol' => __( 'Notifications', 'surecart' ),
50 'subscription_protocol' => __( 'Subscriptions', 'surecart' ),
51 'subscription_preservation' => __( 'Subscription Saver', 'surecart' ),
52 'tax_protocol' => __( 'Taxes', 'surecart' ),
53 'processors' => __( 'Payment Processors', 'surecart' ),
54 'export' => __( 'Data Export', 'surecart' ),
55 'connection' => __( 'Connection', 'surecart' ),
56 'advanced' => __( 'Advanced', 'surecart' ),
57 ];
58 }
59
60 /**
61 * Show the page.
62 *
63 * @param \SureCartCore\Requests\RequestInterface $request Request.
64 * @return function
65 */
66 public function show( \SureCartCore\Requests\RequestInterface $request ) {
67 // don't show admin notices on settings pages.
68 remove_all_actions( 'admin_notices' );
69
70 add_action( 'admin_enqueue_scripts', [ $this, 'showScripts' ] );
71
72 return \SureCart::view( $this->template )->with(
73 [
74 'tab' => $request->query( 'tab' ) ?? '',
75 'breadcrumb' => ! empty( $this->tabs[ $request->query( 'tab' ) ?? '' ] ) ? $this->tabs[ $request->query( 'tab' ) ?? '' ] : '',
76 'is_free' => (bool) ( \SureCart::account()->plan->free ?? true ),
77 'entitlements' => \SureCart::account()->entitlements,
78 'upgrade_url' => \SureCart::config()->links->purchase,
79 'brand_color' => \SureCart::account()->brand->color ?? null,
80 'status' => $request->query( 'status' ),
81 'claim_url' => ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '',
82 ]
83 );
84 }
85
86 /**
87 * Enqueue the show scripts.
88 *
89 * @return void
90 */
91 public function showScripts() {
92 if ( ! empty( $this->scripts['show'] ) ) {
93 $this->enqueue( $this->scripts['show'][0], $this->scripts['show'][1] );
94 }
95 }
96
97 /**
98 * Enqueue a script.
99 *
100 * @param string $handle Script handle.
101 * @param string $path Path to script.
102 * @param array $deps Dependencies.
103 *
104 * @return void
105 */
106 public function enqueue( $handle, $path, $deps = [] ) {
107 $deps = array_merge( $deps, $this->dependencies );
108 $deps = array_merge( $deps, [ 'sc-ui-data', 'wp-data', 'wp-core-data' ] );
109
110 wp_enqueue_media();
111 wp_enqueue_style( 'wp-components' );
112 wp_enqueue_style( 'wp-block-editor' );
113 wp_enqueue_style( 'surecart-themes-default' );
114 wp_enqueue_script( 'surecart-components' );
115 wp_enqueue_script( 'wp-format-library' );
116 wp_enqueue_style( 'wp-format-library' );
117
118 // automatically load dependencies and version.
119 $asset_file = include plugin_dir_path( SURECART_PLUGIN_FILE ) . "dist/$path.asset.php";
120
121 // Enqueue scripts.
122 \SureCart::core()->assets()->enqueueScript(
123 $handle,
124 trailingslashit( \SureCart::core()->assets()->getUrl() ) . "dist/$path.js",
125 array_merge( $asset_file['dependencies'], $deps ),
126 $asset_file['version'] . '-' . \SureCart::plugin()->version()
127 );
128
129 wp_set_script_translations( $handle, 'surecart' );
130
131 wp_localize_script(
132 $handle,
133 'scData',
134 [
135 'supported_currencies' => Currency::getSupportedCurrencies(),
136 'app_url' => defined( 'SURECART_APP_URL' ) ? untrailingslashit( SURECART_APP_URL ) : 'https://app.surecart.com',
137 'api_url' => \SureCart::requests()->getBaseUrl(),
138 'currency' => \SureCart::account()->currency,
139 'time_zones' => TimeDate::timezoneOptions(),
140 'entitlements' => \SureCart::account()->entitlements,
141 'brand_color' => \SureCart::account()->brand->color ?? null,
142 'plan_name' => \SureCart::account()->plan->name ?? '',
143 'processors' => Processor::get(),
144 'is_block_theme' => (bool) wp_is_block_theme(),
145 'claim_url' => ! \SureCart::account()->claimed ? \SureCart::routeUrl( 'account.claim' ) : '',
146 ]
147 );
148 }
149 }
150