PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 3.0.3
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v3.0.3
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 / Database / ProductPageMigrationService.php
surecart / app / src / Database Last commit date
Tables 1 year ago GeneralMigration.php 1 year ago MigrationsServiceProvider.php 1 year ago ProductPageMigrationService.php 1 year ago RewriteRulesMigrationService.php 1 year ago Table.php 3 years ago UpdateMigrationServiceProvider.php 2 years ago UserMetaMigrationsService.php 3 years ago VersionMigration.php 1 year ago WebhookMigrationsService.php 1 year ago
ProductPageMigrationService.php
83 lines
1 <?php
2
3 namespace SureCart\Database;
4
5 /**
6 * Run this migration when version changes or for new installations.
7 */
8 class ProductPageMigrationService extends VersionMigration {
9 /**
10 * The key for the migration.
11 *
12 * @var string
13 */
14 protected $migration_key = 'surecart_product_page_migration_version';
15
16 /**
17 * Run the migration.
18 *
19 * @return void
20 */
21 public function run(): void {
22
23 $args = array(
24 'post_type' => array( 'wp_template_part', 'wp_template' ), // specify the post types.
25 'post_status' => array( 'auto-draft', 'draft', 'publish' ), // specify the post status.
26 'posts_per_page' => -1,
27 'lazy_load_term_meta' => false,
28 );
29
30 $query = new \WP_Query( $args );
31 $templates = $query->posts ?? array();
32
33 if ( empty( $templates ) ) {
34 return;
35 }
36
37 // filter out the templates that have post_name as product.
38 $product_templates = array_filter(
39 $templates,
40 function ( $template ) {
41 return in_array( $template->post_name, array( 'product-info', 'single-product' ) ) ||
42 strpos( $template->post_name, 'sc-part-products-info-' ) !== false ||
43 strpos( $template->post_name, 'sc-products-' ) !== false;
44 }
45 );
46
47 // if we don't have any product templates, return.
48 if ( empty( $product_templates ) ) {
49 return;
50 }
51
52 // update each template if it doesn't have the wp:surecart/product-page block.
53 foreach ( $product_templates as $product_template ) {
54
55 if ( ! has_block( 'surecart/product-page', $product_template->post_content ) ) {
56 wp_update_post(
57 array(
58 'ID' => $product_template->ID,
59 'post_content' => '<!-- wp:surecart/product-page {"align":"wide"} -->' . $product_template->post_content . '<!-- /wp:surecart/product-page -->',
60 )
61 );
62 }
63
64 if ( ! has_block( 'surecart/product-selected-price-ad-hoc-amount', $product_template->post_content ) ) {
65 $insert_before_block = has_block( 'surecart/product-buy-buttons', $product_template ) ? 'surecart/product-buy-buttons' : 'surecart/product-buy-button';
66
67 $new_content = str_replace(
68 '<!-- wp:' . $insert_before_block,
69 '<!-- wp:surecart/product-selected-price-ad-hoc-amount /-->' . PHP_EOL . '<!-- wp:' . $insert_before_block,
70 $product_template->post_content
71 );
72
73 wp_update_post(
74 array(
75 'ID' => $product_template->ID,
76 'post_content' => $new_content,
77 )
78 );
79 }
80 }
81 }
82 }
83