PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.0-beta1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.0-beta1
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 / app / src / Migration / ProductPageWrapperService.php
surecart / app / src / Migration Last commit date
ProductPageWrapperService.php 1 year ago
ProductPageWrapperService.php
89 lines
1 <?php
2
3 namespace SureCart\Migration;
4
5 /**
6 * Product page wrapper service.
7 */
8 class ProductPageWrapperService {
9
10 /**
11 * Content of the page
12 *
13 * @var string
14 */
15 protected $content = '';
16
17 /**
18 * Constructor
19 *
20 * @param string $content Content of the page.
21 *
22 * @return void
23 */
24 public function __construct( $content ) {
25 $this->content = $content;
26 }
27
28 /**
29 * Has product page wrapper
30 *
31 * @return boolean
32 */
33 public function hasProductPageWrapper() {
34 return preg_match( '/data-sc-block-id=(?:"product-page"|\'product-page\'|\\"product-page\\"|\\\'product-page\\\')/', $this->content );
35 }
36
37 /**
38 * Has custom amount block
39 *
40 * @return boolean
41 */
42 public function hasCustomAmountBlock() {
43 return preg_match( '/data-sc-block-id=(?:"custom-amount"|\'custom-amount\'|\\"custom-amount\\"|\\\'custom-amount\\\')/', $this->content );
44 }
45
46 /**
47 * Add product page wrapper
48 *
49 * @return string
50 */
51 public function addProductPageWrapper() {
52 return '<!-- wp:surecart/product-page -->' . $this->content . '<!-- /wp:surecart/product-page -->';
53 }
54
55 /**
56 * Add custom amount block
57 *
58 * @return string
59 */
60 public function addCustomAmountBlock() {
61 return str_replace(
62 '<div class="wp-block-button has-custom-width wp-block-button__width-100 wp-block-surecart-product-buy-button"',
63 '<!-- wp:surecart/product-selected-price-ad-hoc-amount /-->' . PHP_EOL . '<div class="wp-block-button has-custom-width wp-block-button__width-100 wp-block-surecart-product-buy-button"',
64 $this->content
65 );
66 }
67
68 /**
69 * Handle product page wrapper
70 *
71 * @return string
72 */
73 public function wrap(): string {
74 if ( ! is_singular( 'sc_product' ) ) {
75 return $this->content;
76 }
77
78 if ( ! $this->hasProductPageWrapper() ) {
79 $this->content = $this->addProductPageWrapper();
80 }
81
82 if ( ! $this->hasCustomAmountBlock() ) {
83 $this->content = $this->addCustomAmountBlock();
84 }
85
86 return do_blocks( $this->content );
87 }
88 }
89