%PDF- %PDF-
Direktori : /home/eirtvhdf/vmullen.hire-va.com/wp-content/plugins/depicter/app/ |
Current File : /home/eirtvhdf/vmullen.hire-va.com/wp-content/plugins/depicter/app/hooks.php |
<?php /** * Declare any actions and filters here. * In most cases you should use a service provider, but in cases where you * just need to add an action/filter and forget about it you can add it here. * * @package Depicter */ if ( ! defined( 'ABSPATH' ) ) { exit; } function depicter_add_thumbnail_size() { add_image_size( 'depicter-thumbnail', 200, 9999, false ); } add_action( 'after_setup_theme', 'depicter_add_thumbnail_size' ); /** * Make assets and cache for slider after publishing the changes * * @param $documentID * @param $properties * * @return void */ function depicter_make_document_cache( $documentID, $properties ) { if ( $properties['status'] === 'publish' ) { \Depicter::front()->render()->flushDocumentCache( $documentID ); \Depicter::front()->render()->document( $documentID, [ 'echo' => false ] ); } } add_action( 'depicter/editor/after/store', 'depicter_make_document_cache', 10, 2 ); /** * Remove document cache after document was deleted * * @param $documentID * * @return void */ function depicter_purge_document_cache( $documentID ) { \Depicter::front()->render()->flushDocumentCache( $documentID ); } add_action( 'depicter/editor/after/delete', 'depicter_purge_document_cache', 10 ); /** * Flushes conditional documents cache * * @param int $documentID * * @return void */ function depicter_purge_conditional_documents_cache( $documentID = 0 ) { \Depicter::document()->getConditionalDocumentIDs(true); } add_action( 'depicter/dashboard/after/delete', 'depicter_purge_conditional_documents_cache', 10 ); add_action( 'depicter/editor/after/store' , 'depicter_purge_conditional_documents_cache', 10 ); add_action( 'depicter/rules/after/store' , 'depicter_purge_conditional_documents_cache', 10 ); /** * Depicter sanitize html tags for depicter slider output * * @param array $allowed_tags * @return void */ function depicter_sanitize_html_tags_for_output( $allowed_tags ) { return array_merge_recursive( $allowed_tags, wp_kses_allowed_html( 'post' ) ); } add_filter( 'averta/wordpress/sanitize/html/tags/depicter/output', 'depicter_sanitize_html_tags_for_output' ); function depicter_disable_nocache_headers( $headers ) { unset( $headers['Expires'] ); unset( $headers['Cache-Control'] ); return $headers; } /** * Set Svg Meta Data * * Adds dimensions metadata to uploaded SVG files, since WordPress doesn't do it. * * @param array $data * @param int $id * @return array $data */ function depicter_set_svg_meta_data( $data, $id ) { // If the attachment is an svg if ( 'image/svg+xml' === get_post_mime_type( $id ) ) { // If the svg metadata are empty or the width is empty or the height is empty. // then get the attributes from xml. if ( empty( $data ) || empty( $data['width'] ) || empty( $data['height'] ) ) { $attachment = get_the_guid( $id ); $xml = simplexml_load_file( $attachment ); if ( ! empty( $xml ) ) { $attr = $xml->attributes(); $view_box = explode( ' ', $attr->viewBox );// phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase $data['width'] = isset( $attr->width ) && preg_match( '/\d+/', $attr->width, $value ) ? (int) $value[0] : ( 4 === count( $view_box ) ? (int) $view_box[2] : null ); $data['height'] = isset( $attr->height ) && preg_match( '/\d+/', $attr->height, $value ) ? (int) $value[0] : ( 4 === count( $view_box ) ? (int) $view_box[3] : null ); } } } return $data; } add_filter( 'wp_update_attachment_metadata', 'depicter_set_svg_meta_data', 10, 2 ); function depicter_clear_cache() { \Depicter::cache('document')->clear(); } function depicter_clear_cache_by_cache_enabler() { $cacheEnabled = !empty( $_GET['_cache'] ) && $_GET['_cache'] == 'cache-enabler' ? true : false; $isClearAction = !empty( $_GET['_action'] ) && ( $_GET['_action'] == 'clear' || $_GET['_action'] == 'clearurl' ); if ( $cacheEnabled && $isClearAction && !empty( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], 'cache_enabler_clear_cache_nonce' ) ) { depicter_clear_cache(); } } add_action( 'init', 'depicter_clear_cache_by_cache_enabler' ); add_action( 'post_updated', 'depicter_clear_cache' ); add_filter( 'style_loader_tag', 'depicter_add_preload_to_styles', 10, 2 ); function depicter_add_preload_to_styles( $html, $handle ){ // skip if resource preloading option was disabled if( \Depicter::options()->get('resource_preloading' ) === 'off' ){ return $html; } if( strpos( $handle, 'depicter--') === 0 ){ $html = str_replace("rel='stylesheet'", 'rel="preload" as="style" onload="this.rel=\'stylesheet\';this.onload=null"', $html); } return $html; } function depicter_add_defer_to_scripts( $tag, $handle ) { if( strpos( $handle, 'depicter--') === 0 ){ $tag = str_replace(' src=', ' defer src=', $tag ); } return $tag; } add_filter( 'script_loader_tag', 'depicter_add_defer_to_scripts', 15, 2 ); /** * Check if imported media deleted then remove its ID from imported assets dictionary * * @param int $attachment_id * @return void */ function depicter_check_deleted_imported_media( $attachment_id ) { \Depicter::media()->maybeRemoveAttachmentFromDictionary( $attachment_id ); } add_action( 'delete_attachment', 'depicter_check_deleted_imported_media'); function depicter_check_activation() { if ( isset( $_GET['depicter_upgraded'] ) ) { if ( \Depicter::client()->validateActivation() ) { \Depicter::client()->getAccessToken( true ); } } elseif ( ( isset( $_GET['page'] ) && $_GET['page'] == 'depicter-dashboard' ) || ( isset( $_GET['action'] ) && $_GET['action'] == 'depicter' ) ) { if ( \Depicter::client()->validateActivation() ) { \Depicter::client()->getRefreshToken( true ); } } if ( isset( $_GET['depicter_flush_tokens'] ) && user_can( wp_get_current_user(), 'manage_options') ) { \Depicter::client()->getRefreshToken( true ); \Depicter::client()->getAccessToken( true ); } } add_action( 'admin_init', 'depicter_check_activation' ); /** * Renew expired tokens * * @return void */ function depicter_renew_tokens() { if ( false === \Depicter::cache('base')->get( 'access_token' ) ) { \Depicter\Services\UserAPIService::renewTokens(); } } add_action( 'admin_init', 'depicter_renew_tokens' ); /** * disable admin bar * * @return void */ function depicter_disable_admin_bar() { if ( isset( $_GET['dp-wp-admin-bar'] ) && $_GET['dp-wp-admin-bar'] == 0 ) { add_filter( 'show_admin_bar', '__return_false' ); } } add_action( 'init', 'depicter_disable_admin_bar'); add_action( 'admin_notices', 'depicter_renew_subscription_notice'); function depicter_renew_subscription_notice() { if ( ! \Depicter::auth()->isSubscriptionExpired() ) { return; } $subscription_id = \Depicter::options()->get('subscription_id' , ''); echo Depicter::view('admin/notices/renew-subscription-notice')->with( 'view_args', [ 'subscription_id' => $subscription_id ])->toString(); } /** * Flush all documents markup * * @return void */ function depicter_flush_documents_cache() { try{ $documents = \Depicter::documentRepository()->select( [ 'id' ] )->findAll()->get(); if ( $documents ) { $documents = $documents->toArray(); foreach( $documents as $document ) { \Depicter::front()->render()->flushDocumentCache( $document['id'] ); } } } catch( \Exception $e ){ } } add_action( 'depicter/plugin/updated', 'depicter_flush_documents_cache' );