Remove Cart and Checkout templates migration code (#44148)
* Remove Cart and Checkouts templates migration code * Add changefile(s) from automation for the following project(s): woocommerce --------- Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
parent
be10f00f05
commit
cca2271671
|
@ -0,0 +1,4 @@
|
|||
Significance: patch
|
||||
Type: update
|
||||
Comment: Remove Cart and Checkouts templates migration code
|
||||
|
|
@ -11,7 +11,6 @@ use Automattic\WooCommerce\Blocks\Templates\SingleProductTemplateCompatibility;
|
|||
use Automattic\WooCommerce\Blocks\Utils\BlockTemplateUtils;
|
||||
use Automattic\WooCommerce\Blocks\Templates\OrderConfirmationTemplate;
|
||||
use Automattic\WooCommerce\Blocks\Templates\SingleProductTemplate;
|
||||
use Automattic\WooCommerce\Blocks\Utils\BlockTemplateMigrationUtils;
|
||||
|
||||
/**
|
||||
* BlockTypesController class.
|
||||
|
@ -66,8 +65,6 @@ class BlockTemplatesController {
|
|||
add_action( 'after_switch_theme', array( $this, 'check_should_use_blockified_product_grid_templates' ), 10, 2 );
|
||||
|
||||
if ( wc_current_theme_is_fse_theme() ) {
|
||||
add_action( 'init', array( $this, 'maybe_migrate_content' ) );
|
||||
|
||||
// By default, the Template Part Block only supports template parts that are in the current theme directory.
|
||||
// This render_callback wrapper allows us to add support for plugin-housed template parts.
|
||||
add_filter(
|
||||
|
@ -767,22 +764,4 @@ class BlockTemplatesController {
|
|||
|
||||
return $post_type_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Migrates page content to templates if needed.
|
||||
*/
|
||||
public function maybe_migrate_content() {
|
||||
// Migration should occur on a normal request to ensure every requirement is met.
|
||||
// We are postponing it if WP is in maintenance mode, installing, WC installing or if the request is part of a WP-CLI command.
|
||||
if ( wp_is_maintenance_mode() || ! get_option( 'woocommerce_db_version', false ) || Constants::is_defined( 'WP_SETUP_CONFIG' ) || Constants::is_defined( 'WC_INSTALLING' ) || Constants::is_defined( 'WP_CLI' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! BlockTemplateMigrationUtils::has_migrated_page( 'cart' ) ) {
|
||||
BlockTemplateMigrationUtils::migrate_page( 'cart' );
|
||||
}
|
||||
if ( ! BlockTemplateMigrationUtils::has_migrated_page( 'checkout' ) ) {
|
||||
BlockTemplateMigrationUtils::migrate_page( 'checkout' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<?php
|
||||
namespace Automattic\WooCommerce\Blocks\Templates;
|
||||
|
||||
use Automattic\WooCommerce\Blocks\Utils\BlockTemplateMigrationUtils;
|
||||
|
||||
/**
|
||||
* CartTemplate class.
|
||||
*
|
||||
|
@ -34,11 +32,6 @@ class CartTemplate extends AbstractPageTemplate {
|
|||
* @return boolean
|
||||
*/
|
||||
protected function is_active_template() {
|
||||
|
||||
if ( ! BlockTemplateMigrationUtils::has_migrated_page( 'cart' ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
global $post;
|
||||
$placeholder = $this->get_placeholder_page();
|
||||
return null !== $placeholder && $post instanceof \WP_Post && $placeholder->post_name === $post->post_name;
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
<?php
|
||||
namespace Automattic\WooCommerce\Blocks\Templates;
|
||||
|
||||
use Automattic\WooCommerce\Blocks\Utils\BlockTemplateMigrationUtils;
|
||||
|
||||
/**
|
||||
* CheckoutTemplate class.
|
||||
*
|
||||
|
@ -34,11 +32,6 @@ class CheckoutTemplate extends AbstractPageTemplate {
|
|||
* @return boolean
|
||||
*/
|
||||
protected function is_active_template() {
|
||||
|
||||
if ( ! BlockTemplateMigrationUtils::has_migrated_page( 'checkout' ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
global $post;
|
||||
$placeholder = $this->get_placeholder_page();
|
||||
return null !== $placeholder && $post instanceof \WP_Post && $placeholder->post_name === $post->post_name;
|
||||
|
|
|
@ -1,129 +0,0 @@
|
|||
<?php
|
||||
namespace Automattic\WooCommerce\Blocks\Utils;
|
||||
|
||||
/**
|
||||
* Utility methods used for migrating pages to block templates.
|
||||
* {@internal This class and its methods should only be used within the BlockTemplateController.php and is not intended for public use.}
|
||||
*/
|
||||
class BlockTemplateMigrationUtils {
|
||||
|
||||
/**
|
||||
* Check if a page has been migrated to a template.
|
||||
*
|
||||
* @param string $page_id Page ID.
|
||||
* @return boolean
|
||||
*/
|
||||
public static function has_migrated_page( $page_id ) {
|
||||
return (bool) get_option( 'has_migrated_' . $page_id, false );
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores an option to indicate that a template has been migrated.
|
||||
*
|
||||
* @param string $page_id Page ID.
|
||||
* @param string $status Status of the migration.
|
||||
*/
|
||||
public static function set_has_migrated_page( $page_id, $status = 'success' ) {
|
||||
update_option( 'has_migrated_' . $page_id, $status );
|
||||
}
|
||||
|
||||
/**
|
||||
* Migrates a page to a template if needed.
|
||||
*
|
||||
* @param string $template_slug Template slug.
|
||||
*/
|
||||
public static function migrate_page( $template_slug ) {
|
||||
// Get the block template for this page. If it exists, we won't migrate because the user already has custom content.
|
||||
$block_template = BlockTemplateUtils::get_block_template( 'woocommerce/woocommerce//page-' . $template_slug, 'wp_template' );
|
||||
// If we were unable to get the block template, bail. Try again later.
|
||||
if ( ! $block_template ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Skip migration if the theme has a template file for this page.
|
||||
$theme_template = BlockTemplateUtils::get_block_template( get_stylesheet() . '//page-' . $template_slug, 'wp_template' );
|
||||
if ( $theme_template ) {
|
||||
return self::set_has_migrated_page( $template_slug, 'theme-file-exists' );
|
||||
}
|
||||
|
||||
// If a custom template is present already, no need to migrate.
|
||||
if ( $block_template->wp_id ) {
|
||||
return self::set_has_migrated_page( $template_slug, 'custom-template-exists' );
|
||||
}
|
||||
|
||||
$template_content = self::get_default_template( $template_slug );
|
||||
|
||||
if ( self::create_custom_template( $block_template, $template_content ) ) {
|
||||
return self::set_has_migrated_page( $template_slug );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare default page template.
|
||||
*
|
||||
* @param string $template_slug Template slug.
|
||||
* @return string
|
||||
*/
|
||||
protected static function get_default_template( $template_slug ) {
|
||||
|
||||
$default_template_content = '
|
||||
<!-- wp:group {"layout":{"inherit":true,"type":"constrained"}} -->
|
||||
<div class="wp-block-group"><!-- wp:woocommerce/page-content-wrapper {"page":"' . $template_slug . '"} -->
|
||||
<!-- wp:post-title {"align":"wide", "level":1} /-->
|
||||
<!-- wp:post-content {"align":"wide"} /-->
|
||||
<!-- /wp:woocommerce/page-content-wrapper --></div>
|
||||
<!-- /wp:group -->
|
||||
';
|
||||
return self::get_block_template_part( 'header' ) . $default_template_content . self::get_block_template_part( 'footer' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a custom template with given content.
|
||||
*
|
||||
* @param \WP_Block_Template|null $template Template object.
|
||||
* @param string $content Template content.
|
||||
* @return boolean Success.
|
||||
*/
|
||||
protected static function create_custom_template( $template, $content ) {
|
||||
|
||||
$term = get_term_by( 'slug', $template->theme, 'wp_theme', ARRAY_A );
|
||||
|
||||
if ( ! $term ) {
|
||||
$term = wp_insert_term( $template->theme, 'wp_theme' );
|
||||
}
|
||||
|
||||
$template_id = wp_insert_post(
|
||||
[
|
||||
'post_name' => $template->slug,
|
||||
'post_type' => 'wp_template',
|
||||
'post_status' => 'publish',
|
||||
'tax_input' => array(
|
||||
'wp_theme' => $template->theme,
|
||||
),
|
||||
'meta_input' => array(
|
||||
'origin' => $template->source,
|
||||
),
|
||||
'post_content' => $content,
|
||||
],
|
||||
true
|
||||
);
|
||||
|
||||
wp_set_post_terms( $template_id, array( $term['term_id'] ), 'wp_theme' );
|
||||
|
||||
return $template_id && ! is_wp_error( $template_id );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the requested template part.
|
||||
*
|
||||
* @param string $part The part to return.
|
||||
* @return string
|
||||
*/
|
||||
protected static function get_block_template_part( $part ) {
|
||||
$template_part = BlockTemplateUtils::get_block_template( get_stylesheet() . '//' . $part, 'wp_template_part' );
|
||||
if ( ! $template_part || empty( $template_part->content ) ) {
|
||||
return '';
|
||||
}
|
||||
return $template_part->content;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue