Files
roi-theme/wp-content/plugins/thrive-visual-editor/inc/classes/lightspeed/class-gutenberg.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

110 lines
2.7 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-visual-editor
*/
namespace TCB\Lightspeed;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden
}
/**
* Class Gutenberg
*
* @package TCB\Lightspeed
*/
class Gutenberg {
const DISABLE_GUTENBERG_LP = '_tve_disable_gutenberg_lp';
const DISABLE_GUTENBERG = '_tve_disable_gutenberg';
const HAS_GUTENBERG = '_tve_js_modules_gutenberg';
public static function get_gutenberg_assets( $module = '', $key = '' ) {
$data = [
'gutenberg' => [
'identifier' => '[class^="wp-block"]',
],
];
if ( ! empty( $key ) ) {
$data = array_map( static function ( $item ) use ( $key ) {
return empty( $item[ $key ] ) ? [] : $item[ $key ];
}, $data );
}
return empty( $module ) ? $data : $data[ $module ];
}
/**
* Checks if gutenberg scripts are disabled on a certain page
*
* @param false $is_lp
*
* @return bool
*/
public static function is_gutenberg_disabled( $is_lp = false ) {
return ! empty( get_option( $is_lp ? static::DISABLE_GUTENBERG_LP : static::DISABLE_GUTENBERG, 0 ) );
}
public static function needs_gutenberg_assets() {
$id = get_the_ID();
if ( ! static::is_gutenberg_disabled( tve_post_is_landing_page( $id ) ) || ! empty( $_GET['force-all-js'] ) || is_editor_page_raw() || empty( get_post_meta( $id, 'tcb2_ready', true ) ) ) {
return true;
}
$has_gutenberg = static::process_gutenberg_meta( $id );
return ! empty( get_post_meta( $id, static::HAS_GUTENBERG, true ) ) && $has_gutenberg;
}
/**
* Process the gutenberg meta at the post level
*
* @param $id
*
* @return bool
*/
public static function process_gutenberg_meta( $id ) {
$gutenberg_meta = get_post_meta( $id, static::DISABLE_GUTENBERG, true );
/* for enabled */
$has_gutenberg = true;
if ( $gutenberg_meta === '' ) {
/* for inherit */
$gutenberg_disabled = static::is_gutenberg_disabled( tve_post_is_landing_page( $id ) );
$has_gutenberg = ! $gutenberg_disabled;
} else if ( $gutenberg_meta === '0' ) {
/* for disabled */
$has_gutenberg = false;
}
return $has_gutenberg;
}
/**
* f we have gutenberg added on this page we save the optimize modules
*
* @param $post_id
* @param $post_content
*/
public static function update_post( $post_id, $post ) {
/* We need this only if we are editing with WP */
if ( ! empty( $_POST['action'] ) && $_POST['action'] === 'tcb_editor_ajax' ) {
return;
}
$post_content = $post->post_content;
$data = $post_content && ( strpos( $post_content, 'wp-block' ) !== false || strpos( $post_content, '/wp:' ) !== false ) ? [ 'gutenberg' ] : [];
update_post_meta( $post_id, static::HAS_GUTENBERG, $data );
}
}