PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / trunk
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments vtrunk
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 3 months ago ProductPageMigrationService.php 1 year ago RewriteRulesMigrationService.php 1 year ago Table.php 3 years ago ThemeMigrationService.php 3 months ago UpdateMigrationServiceProvider.php 3 weeks 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