PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.0
4.7.0 4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.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 / packages / blocks / Blocks / Dashboard / DashboardPage / Block.php
surecart / packages / blocks / Blocks / Dashboard / DashboardPage Last commit date
Block.php 1 year ago block.json 6 months ago
Block.php
105 lines
1 <?php
2
3 namespace SureCartBlocks\Blocks\Dashboard\DashboardPage;
4
5 use SureCartBlocks\Blocks\Dashboard\DashboardPage;
6
7 /**
8 * Checkout block
9 */
10 class Block extends DashboardPage {
11 /**
12 * Individual block controllers.
13 *
14 * @var array
15 */
16 protected $blocks = [
17 'subscription' => \SureCartBlocks\Controllers\SubscriptionController::class,
18 'payment_method' => \SureCartBlocks\Controllers\PaymentMethodController::class,
19 'charge' => \SureCartBlocks\Controllers\ChargeController::class,
20 'order' => \SureCartBlocks\Controllers\OrderController::class,
21 'user' => \SureCartBlocks\Controllers\UserController::class,
22 'customer' => \SureCartBlocks\Controllers\CustomerController::class,
23 'download' => \SureCartBlocks\Controllers\DownloadController::class,
24 'invoice' => \SureCartBlocks\Controllers\InvoiceController::class,
25 'license' => \SureCartBlocks\Controllers\LicenseController::class,
26 ];
27
28 /**
29 * Render the block
30 *
31 * @param array $attributes Block attributes.
32 * @param string $content Post content.
33 *
34 * @return string
35 */
36 public function render( $attributes, $content ) {
37 if ( ! is_user_logged_in() ) {
38 return \SureCart::block()->render( 'web/login' );
39 }
40
41 // get the current page tab and possible id.
42 $tab = $this->getTab();
43
44 // make sure we are on the correct tab.
45 if ( ! empty( $tab ) && ! empty( $attributes['name'] ) ) {
46 if ( $tab !== $attributes['name'] ) {
47 return '';
48 }
49 }
50
51 $model = isset( $_GET['model'] ) ? sanitize_text_field( wp_unslash( $_GET['model'] ) ) : false;
52
53 /**
54 * Filters content to display before the block.
55 *
56 * @since 1.1.12
57 *
58 * @param string $content Content to display. Default empty.
59 * @param array $args Array of login form arguments.
60 */
61 $before = apply_filters( 'surecart/dashboard/block/before', '', $attributes, $content );
62
63 /**
64 * Filters content to display after the block.
65 *
66 * @since 1.1.12
67 *
68 * @param string $content Content to display. Default empty.
69 * @param array $args Array of login form arguments.
70 */
71 $after = apply_filters( 'surecart/dashboard/block/after', '', $attributes, $content );
72
73 // call the correct block controller.
74 if ( ! empty( $this->blocks[ $model ] ) ) {
75 $action = isset( $_GET['action'] ) ? sanitize_text_field( wp_unslash( $_GET['action'] ) ) : false;
76
77 if ( method_exists( $this->blocks[ $model ], $action ) ) {
78 $block = new $this->blocks[ $model ]();
79 return $this->passwordNag() . '<sc-spacing class="sc-customer-dashboard" style="--spacing: var(--sc-spacing-xx-large); font-size: 15px;">' . $before . $block->handle( $action ) . $after . '</sc-spacing>';
80 }
81 }
82
83 return $this->passwordNag() . '<sc-spacing class="sc-customer-dashboard" style="--spacing: var(--sc-spacing-xx-large); font-size: 15px;">' . $before . filter_block_content( $content ) . $after . '</sc-spacing>';
84 }
85
86 /**
87 * Render the passowrd nag if needed.
88 *
89 * @return string
90 */
91 public function passwordNag() {
92 if ( empty( get_user_meta( get_current_user_id(), 'default_password_nag', true ) ) ) {
93 return;
94 }
95 $back = add_query_arg( [ 'tab' => $this->getTab() ], remove_query_arg( array_keys( $_GET ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
96 ob_start();
97 ?>
98
99 <sc-password-nag success-url="<?php echo esc_url( $back ); ?>"></sc-password-nag>
100
101 <?php
102 return ob_get_clean();
103 }
104 }
105