REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 5.66 KB
Close
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/wpforms-lite/src/Admin/Builder/TemplatesCache.php
Text
Base64
<?php namespace WPForms\Admin\Builder; use WPForms\Helpers\CacheBase; use WPForms\Helpers\File; /** * Form templates cache handler. * * @since 1.6.8 */ class TemplatesCache extends CacheBase { /** * Templates list content cache files. * * @since 1.8.6 * * @var array */ const CONTENT_CACHE_FILES = [ 'admin-page' => 'templates-admin-page.html', 'builder' => 'templates-builder.html', ]; /** * List of plugins that can use the templates cache. * * @since 1.8.7 * * @var array */ const PLUGINS = [ 'wpforms', 'wpforms-lite', ]; /** * Determine if the class is allowed to load. * * @since 1.6.8 * * @return bool */ protected function allow_load(): bool { $has_permissions = wpforms_current_user_can( [ 'create_forms', 'edit_forms' ] ); $allowed_requests = wpforms_is_admin_ajax() || wpforms_is_admin_page( 'builder' ) || wpforms_is_admin_page( 'templates' ) || wpforms_is_admin_page( 'tools', 'action-scheduler' ); $allow = wp_doing_cron() || wpforms_doing_wp_cli() || ( $has_permissions && $allowed_requests ); /** * Whether to load this class. * * @since 1.7.2 * * @param bool $allow True or false. */ return (bool) apply_filters( 'wpforms_admin_builder_templatescache_allow_load', $allow ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName } /** * Initialize the class. * * @since 1.8.7 */ public function init() { // phpcs:ignore WPForms.PHP.HooksMethod.InvalidPlaceForAddingHooks parent::init(); // Upgrade cached templates data after the plugin update. add_action( 'upgrader_process_complete', [ $this, 'upgrade_templates' ] ); } /** * Upgrade cached templates data after the plugin update. * * @since 1.8.7 * * @param object $upgrader WP_Upgrader instance. */ public function upgrade_templates( $upgrader ) { if ( $this->allow_update_cache( $upgrader ) ) { $this->update( true ); } } /** * Determine if allowed to update the cache. * * @since 1.8.7 * * @param object $upgrader WP_Upgrader instance. * * @return bool */ private function allow_update_cache( $upgrader ): bool { $result = $upgrader->result ?? null; // Check if plugin was updated. if ( ! $result ) { return false; } // Check if updated plugin is WPForms. if ( ! in_array( $result['destination_name'], self::PLUGINS, true ) ) { return false; } return true; } /** * Provide settings. * * @since 1.6.8 * * @return array Settings array. */ protected function setup() { return [ // Remote source URL. 'remote_source' => 'https://wpforms.com/templates/api/get/', // Cache file. 'cache_file' => 'templates.json', /** * Time-to-live of the templates cache files in seconds. * * This applies to `uploads/wpforms/cache/templates.json` * and all *.json files in `uploads/wpforms/cache/templates/` directory. * * @since 1.6.8 * * @param integer $cache_ttl Cache time-to-live, in seconds. * Default value: WEEK_IN_SECONDS. */ 'cache_ttl' => (int) apply_filters( 'wpforms_admin_builder_templates_cache_ttl', WEEK_IN_SECONDS ), // Scheduled update action. 'update_action' => 'wpforms_admin_builder_templates_cache_update', ]; } /** * Prepare data to store in a local cache. * * @since 1.6.8 * * @param array $data Raw data received by the remote request. * * @return array Prepared data for caching. */ protected function prepare_cache_data( $data ): array { if ( empty( $data ) || ! is_array( $data ) || empty( $data['status'] ) || $data['status'] !== 'success' || empty( $data['data'] ) ) { return []; } $cache_data = $data['data']; // Strip the word "Template" from the end of each template name. foreach ( $cache_data['templates'] as $slug => $template ) { $cache_data['templates'][ $slug ]['name'] = preg_replace( '/\sTemplate$/', '', $template['name'] ); } return $cache_data; } /** * Update the cache. * * @since 1.8.6 * * @param bool $force Whether to force update the cache. * * @return bool */ public function update( bool $force = false ): bool { $result = parent::update( $force ); if ( ! $result ) { return false; } $this->wipe_content_cache(); return $result; } /** * Get cached templates content. * * @since 1.8.6 * * @return string */ public function get_content_cache(): string { // phpcs:ignore Universal.Operators.DisallowShortTernary.Found return File::get_contents( $this->get_content_cache_file() ) ?: ''; } /** * Save templates content cache. * * @since 1.8.6 * * @param string|mixed $content Templates content. * * @return bool */ public function save_content_cache( $content ): bool { return File::put_contents( $this->get_content_cache_file(), (string) $content ); } /** * Wipe cached templates content. * * @since 1.8.6 */ public function wipe_content_cache() { $cache_dir = $this->get_cache_dir(); // Delete the template content cache files. They will be regenerated on the first visit. foreach ( self::CONTENT_CACHE_FILES as $file ) { $cache_file = $cache_dir . $file; if ( is_file( $cache_file ) && is_readable( $cache_file ) ) { // phpcs:ignore WordPress.WP.AlternativeFunctions.unlink_unlink unlink( $cache_file ); } } } /** * Get templates content cache file path. * * @since 1.8.6 * * @return string */ private function get_content_cache_file(): string { $context = wpforms_is_admin_page( 'templates' ) ? 'admin-page' : 'builder'; return File::get_cache_dir() . self::CONTENT_CACHE_FILES[ $context ]; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 3 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Ajax
DIR
-
drwxr-xr-x
2026-06-04 03:43:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Notifications
DIR
-
drwxr-xr-x
2026-06-04 03:43:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Settings
DIR
-
drwxr-xr-x
2026-06-04 03:43:03
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Addons.php
10.16 KB
lrw-r--r--
2026-01-29 20:00:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AntiSpam.php
13.55 KB
lrw-r--r--
2026-05-28 15:16:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ContextMenu.php
953 B
lrw-r--r--
2024-04-23 14:43:10
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Help.php
53.47 KB
lrw-r--r--
2026-05-14 22:10:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
HelpCache.php
1.16 KB
lrw-r--r--
2025-01-16 17:57:18
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ImageUpload.php
789 B
lrw-r--r--
2025-08-11 13:38:06
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PreviewDropdown.php
5.37 KB
lrw-r--r--
2026-05-28 15:16:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
PreviewDropdownEducationItems.php
9.11 KB
lrw-r--r--
2026-05-28 15:16:52
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Shortcuts.php
3.23 KB
lrw-r--r--
2026-01-29 20:00:56
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Templates.php
35.32 KB
lrw-r--r--
2025-09-25 15:01:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TemplatesCache.php
5.66 KB
lrw-r--r--
2024-02-29 17:17:50
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
TemplateSingleCache.php
5.38 KB
lrw-r--r--
2024-09-26 15:36:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).