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 / Database / ProductPageMigrationService.php
surecart / app / src / Database Last commit date
Tables 2 years ago GeneralMigration.php 2 years ago MigrationsServiceProvider.php 2 years ago ProductPageMigrationService.php 2 years ago RewriteRulesMigrationService.php 2 years ago Table.php 4 years ago UpdateMigrationServiceProvider.php 2 years ago UserMetaMigrationsService.php 4 years ago VersionMigration.php 2 years ago WebhookMigrationsService.php 2 years 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 ) ) {
56 wp_update_post(
57 array(
58 'ID' => $product_template->ID,
59 'post_content' => '<!-- wp:surecart/product-page -->' . $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 ) ) {
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