Guest User

WP Table builder v2.0.7 headers already sent fix

a guest
May 26th, 2025
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.56 KB | Fixit | 0 0
  1. <?php
  2.  
  3. namespace WPTableBuilder\Utils;
  4. use WPTableBuilder\WPTableBuilder;
  5.  
  6. class Assets
  7. {
  8.  
  9.     private const CDN_HOST = WPTB_PLUGIN_URL . '/v2';
  10.  
  11.  
  12.     public static function init()
  13.     {
  14.         add_action('enqueue_block_editor_assets', function() {
  15.             self::enqueue(true);
  16.         });
  17.  
  18.         add_action('admin_print_footer_scripts', function() {
  19.             self::enqueue_config();
  20.             echo AssetLoader::get_scripts();
  21.         });
  22.     }
  23.  
  24.  
  25.     public static function enqueue($is_block_editor = false) {
  26.         wp_enqueue_media();
  27.  
  28.         self::enqueue_i18n();
  29.  
  30.         $assets = new AssetLoader(self::CDN_HOST, WPTB_PLUGIN_DIR . '/dist/vite/manifest.json', WPTB_PLUGIN_DIR . '/tmp/.hotfile');
  31.  
  32.         $assets->register('src/wptb-common.ts');
  33.         $assets->register_style('wptb-v2-editor-style', 'src/editor.scss');
  34.         $assets->register_style('wptb-v2-frontend-style', 'src/styles.scss');
  35.  
  36.         do_action('wptb_enqueue_pro_assets');
  37.  
  38.         if ($is_block_editor) {
  39.             $assets->register_path('build/index.js');
  40.             $assets->register_style_path('wptb-v2-gutenberg-style','build/editor.css');
  41.         } else {
  42.             $assets->register('src/index.tsx');
  43.             AssetLoader::enqueue_styles();
  44.         }
  45.     }
  46.  
  47.     private static function enqueue_config()
  48.     {
  49.         $data = [
  50.             'API_BASE' => rest_url('wp-table-builder'),
  51.             'PLUGIN_URL' => WPTB_PLUGIN_URL,
  52.             'HOME_URL' => home_url(),
  53.             'ADMIN_URL' => admin_url('admin-ajax.php'),
  54.             'IS_PRO' => WPTableBuilder::is_pro(),
  55.             'TEST' => __("Create Table", "wptb"),
  56.             'SECURITY_CODE' => wp_create_nonce('wptb-import-security-nonce'),
  57.             'EXPORT_KEY' => wp_create_nonce('wptb_table_export_main_export'),
  58.             'SETTINGS' => [
  59.                 'all_roles' => get_editable_roles(),
  60.                 'is_authorized'=> current_user_can('manage_options'),
  61.                 'version' => WPTableBuilder::VERSION,
  62.                 'general' => get_option('wp_table_builder_settings'),
  63.                 'table_style' => get_option('wptb-general-styles'),
  64.                 'lazy_load' => get_option('wptb_lazy_load'),
  65.                 'lazy_load_pro' => get_option('wptb_lazy_load_pro'),
  66.                 'nonce' => [
  67.                     'general' => wp_create_nonce('wp_table_builder_settings'),
  68.                     'styles' => wp_create_nonce('wptb-general-styles'),
  69.                     'version' => wp_create_nonce('version_control_manager'),
  70.                     'lazy_load' => wp_create_nonce('wptb_lazy_load'),
  71.                 ],
  72.             ],
  73.             'NONCE' => [
  74.                 'wp_rest' => wp_create_nonce('wp_rest'),
  75.                 'table' => wp_create_nonce('wptb_nonce_table'),
  76.                 'preview' => wp_create_nonce('wptb_nonce_table_preview'),
  77.                 'create_term' => wp_create_nonce('wptb_create_term'),
  78.             ]
  79.  
  80.         ];
  81.  
  82.         echo '<script type="text/javascript">var WPTB_CFG = ' . json_encode($data) . ';</script>';
  83.     }
  84.  
  85.     private static function enqueue_i18n()
  86.     {
  87.         load_plugin_textdomain('wp-table-builder', false, 'wp-table-builder/v2/languages');
  88.         wp_register_script(
  89.             'wptb-i18n',
  90.             self::CDN_HOST . '/dist/wptb-i18n.js',
  91.             ['wp-i18n']
  92.         );
  93.  
  94.         wp_set_script_translations('wptb-i18n', 'wp-table-builder', WPTB_PLUGIN_DIR . '/languages');
  95.         add_action('admin_enqueue_scripts', function () {
  96.             wp_enqueue_script('wptb-i18n');
  97.         });
  98.     }
  99.  
  100. }
Advertisement
Add Comment
Please, Sign In to add comment