Plugin Directory

Changeset 2310439


Ignore:
Timestamp:
05/22/2020 09:04:27 PM (6 years ago)
Author:
ircary
Message:

2020.7

  • Avada v6.2.2 Ready
  • WP v5.4.1 Ready
  • WP Rocket v3.5.5.1 Ready
  • CSS Tweaks
  • Improved: PDER{}
  • Improved: send_ereminder()
  • Improved: delete_reminders_many()
  • Added: add_filter( 'wp_mail', [ $this, 'force_send_to_on_sb' ] );
  • Improved: lct_mu{}
  • Improved: lct_quick_send_email()
  • Improved: lct_get_rel_tax_id()
  • Added: lct_check_post_type_match()
  • Improved: lct_features_class_mail{}
  • Improved: lct_acf_form2()
  • Improved: lct_acf_format_value_user()
  • Improved: lct_acf_instant_save{}ajax_handler()
  • Improved: add_comment()
  • Improved: non_ajax_add_comment()
  • Updated: lct_cleanup_uploads()
  • Improved: cleanup_guid_link_cleanup()
  • ACF Field Updates; for LCT Audit Settings
  • Updated: avada_main_menu(); Added: do_action( 'lct/avada_main_menu' );
  • Added: lct_wp_mail_smtp_admin{}
  • Added: add_filter( 'wp_mail_smtp_options_get', [ $this, 'disable_smtp_on_dev' ], 10, 3 );
  • Updated: create_menu(); removed dashboard link
Location:
lct-useful-shortcodes-functions/trunk
Files:
5 added
3 deleted
17 edited

Legend:

Unmodified
Added
Removed
  • lct-useful-shortcodes-functions/trunk/assets/css/a.min.css

    r2036401 r2310439  
    1 a.button,a.fusion-button,a.fusion-button:hover,.fusion-button,.fusion-button:hover{text-decoration:none !important}.fusion-header-wrapper .menu-item a,.fusion-header-wrapper .menu-item a:hover,.fusion-social-network-icon,.fusion-social-network-icon:hover,.fusion-mobile-nav-holder a,.fusion-footer .fusion-footer-copyright-area{text-decoration:none !important;border-bottom:none !important}.tel,.tel:hover,[href*="tel:"],[href*="tel:"]:hover{cursor:default !important;text-decoration:none !important;border-bottom:none !important}.fusion-format-box .fusion-icon-pen{display:none !important}.pac-container{z-index:99999}#nks-tab-1:not(.nks-active){display:none !important}#nks-content-1>div{padding:0 !important}#wpadminbar{z-index:99999 !important}@media screen and (max-width: 600px){#wpadminbar{top:0 !important}}.simple-image .aligncenter{margin-bottom:0}.fusion-info-box a,.fusion-info-box a:hover{color:#FFFFFF}#lct_after_clear:after{content:".";visibility:hidden;display:block;height:0;clear:both}#hidden,.hidden{display:none}#hidden-imp,.hidden-imp,#lct_current_user_can_not_access,.lct_current_user_can_not_access{display:none !important}.hidden_inner div{display:none}.hidden_inner_imp div{display:none !important}.disabled{cursor:not-allowed}.disabled_imp{cursor:not-allowed !important}.lct_text_right{text-align:right}.nomargin,.nom{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important}.nomp{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important;padding:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important}.nom-top{margin-top:0}.lazyframe{background-color:inherit}.lazyframe.map{background-size:contain !important}.lazyframe.map:before{padding-top:60% !important}.lazyframe.birdeye iframe{width:270px !important;border-width:0;display:block;margin:0 auto;overflow:hidden}.lazyframe.birdeye{max-width:270px !important;margin:0 auto}.lazyframe.birdeye:before{padding-top:170px !important}.lazyframe[data-vendor="youtube"]{background-color:#000000 !important}@media screen and (max-width: 1024px){.lct_overlay_menu{position:fixed;width:100%;height:100%;top:0;left:0;transition:all .5s ease;z-index:2;opacity:0;visibility:hidden}.lct_overlay_menu.open{opacity:1;visibility:visible;overflow-y:scroll}.lct_overlay_menu .fusion-mobile-nav-holder{padding-top:10%}.lct_overlay_menu .close{position:fixed;top:40px;right:45px;z-index:3;cursor:pointer;font-family:sans-serif;opacity:0.8}.lct_overlay_menu .close span,.lct_overlay_menu .close span:before,.lct_overlay_menu .close span:after{border-radius:4px;height:5px;width:35px;position:absolute;display:block;content:''}.lct_overlay_menu .close span{background:transparent !important}.lct_overlay_menu .close span:before{transform:rotate(45deg)}.lct_overlay_menu .close span:after{transform:rotate(-45deg)}.lct_overlay_menu .outer-close{position:absolute;right:0;top:0;width:85px;height:85px;cursor:pointer}.lct_overlay_menu .fusion-mobile-nav-holder>ul{border:0 !important}.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{background-color:transparent;overflow:hidden}.lct_overlay_menu img{margin-top:10%;max-width:15%}}@media (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait), (max-width: 385px) and (-webkit-device-pixel-ratio: 1){.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{font-size:24px !important}}
     1a.button,a.fusion-button,a.fusion-button:hover,.fusion-button,.fusion-button:hover{text-decoration:none !important}.fusion-header-wrapper .menu-item a,.fusion-header-wrapper .menu-item a:hover,.fusion-social-network-icon,.fusion-social-network-icon:hover,.fusion-mobile-nav-holder a,.fusion-footer .fusion-footer-copyright-area{text-decoration:none !important;border-bottom:none !important}.tel,.tel:hover,[href*="tel:"],[href*="tel:"]:hover{cursor:default !important;text-decoration:none !important;border-bottom:none !important}.fusion-format-box .fusion-icon-pen{display:none !important}.pac-container{z-index:99999}#nks-tab-1:not(.nks-active){display:none !important}#nks-content-1>div{padding:0 !important}#wpadminbar{z-index:99999 !important}@media screen and (max-width: 600px){#wpadminbar{top:0 !important}}.simple-image .aligncenter{margin-bottom:0}.fusion-info-box a,.fusion-info-box a:hover{color:#FFFFFF}#lct_after_clear:after{content:".";visibility:hidden;display:block;height:0;clear:both}#hidden,.hidden{display:none}#hidden-imp:not(.acf-error),.hidden-imp:not(.acf-error),#lct_current_user_can_not_access,.lct_current_user_can_not_access{display:none !important}.hidden_inner div{display:none}.hidden_inner_imp div{display:none !important}.disabled{cursor:not-allowed}.disabled_imp{cursor:not-allowed !important}.lct_text_right{text-align:right}.nomargin,.nom{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important}.nomp{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important;padding:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important}.nom-top{margin-top:0}.lazyframe{background-color:inherit}.lazyframe.map{background-size:contain !important}.lazyframe.map:before{padding-top:60% !important}.lazyframe.birdeye iframe{width:270px !important;border-width:0;display:block;margin:0 auto;overflow:hidden}.lazyframe.birdeye{max-width:270px !important;margin:0 auto}.lazyframe.birdeye:before{padding-top:170px !important}.lazyframe[data-vendor="youtube"]{background-color:#000000 !important}@media screen and (max-width: 1024px){.lct_overlay_menu{position:fixed;width:100%;height:100%;top:0;left:0;transition:all .5s ease;z-index:2;opacity:0;visibility:hidden}.lct_overlay_menu.open{opacity:1;visibility:visible;overflow-y:scroll}.lct_overlay_menu .fusion-mobile-nav-holder{padding-top:10%}.lct_overlay_menu .close{position:fixed;top:40px;right:45px;z-index:3;cursor:pointer;font-family:sans-serif;opacity:0.8}.lct_overlay_menu .close span,.lct_overlay_menu .close span:before,.lct_overlay_menu .close span:after{border-radius:4px;height:5px;width:35px;position:absolute;display:block;content:''}.lct_overlay_menu .close span{background:transparent !important}.lct_overlay_menu .close span:before{transform:rotate(45deg)}.lct_overlay_menu .close span:after{transform:rotate(-45deg)}.lct_overlay_menu .outer-close{position:absolute;right:0;top:0;width:85px;height:85px;cursor:pointer}.lct_overlay_menu .fusion-mobile-nav-holder>ul{border:0 !important}.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{background-color:transparent;overflow:hidden}.lct_overlay_menu img{margin-top:10%;max-width:15%}}@media (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait), (max-width: 385px) and (-webkit-device-pixel-ratio: 1){.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{font-size:24px !important}}
  • lct-useful-shortcodes-functions/trunk/assets/css/custom.min.css

    r2036401 r2310439  
    1 a.button,a.fusion-button,a.fusion-button:hover,.fusion-button,.fusion-button:hover{text-decoration:none !important}.fusion-header-wrapper .menu-item a,.fusion-header-wrapper .menu-item a:hover,.fusion-social-network-icon,.fusion-social-network-icon:hover,.fusion-mobile-nav-holder a,.fusion-footer .fusion-footer-copyright-area{text-decoration:none !important;border-bottom:none !important}.tel,.tel:hover,[href*="tel:"],[href*="tel:"]:hover{cursor:default !important;text-decoration:none !important;border-bottom:none !important}.fusion-format-box .fusion-icon-pen{display:none !important}.pac-container{z-index:99999}#nks-tab-1:not(.nks-active){display:none !important}#nks-content-1>div{padding:0 !important}#wpadminbar{z-index:99999 !important}@media screen and (max-width: 600px){#wpadminbar{top:0 !important}}.simple-image .aligncenter{margin-bottom:0}.fusion-info-box a,.fusion-info-box a:hover{color:#FFFFFF}#lct_after_clear:after{content:".";visibility:hidden;display:block;height:0;clear:both}#hidden,.hidden{display:none}#hidden-imp,.hidden-imp,#lct_current_user_can_not_access,.lct_current_user_can_not_access{display:none !important}.hidden_inner div{display:none}.hidden_inner_imp div{display:none !important}.disabled{cursor:not-allowed}.disabled_imp{cursor:not-allowed !important}.lct_text_right{text-align:right}.nomargin,.nom{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important}.nomp{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important;padding:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important}.nom-top{margin-top:0}.lazyframe{background-color:inherit}.lazyframe.map{background-size:contain !important}.lazyframe.map:before{padding-top:60% !important}.lazyframe.birdeye iframe{width:270px !important;border-width:0;display:block;margin:0 auto;overflow:hidden}.lazyframe.birdeye{max-width:270px !important;margin:0 auto}.lazyframe.birdeye:before{padding-top:170px !important}.lazyframe[data-vendor="youtube"]{background-color:#000000 !important}@media screen and (max-width: 1024px){.lct_overlay_menu{position:fixed;width:100%;height:100%;top:0;left:0;transition:all .5s ease;z-index:2;opacity:0;visibility:hidden}.lct_overlay_menu.open{opacity:1;visibility:visible;overflow-y:scroll}.lct_overlay_menu .fusion-mobile-nav-holder{padding-top:10%}.lct_overlay_menu .close{position:fixed;top:40px;right:45px;z-index:3;cursor:pointer;font-family:sans-serif;opacity:0.8}.lct_overlay_menu .close span,.lct_overlay_menu .close span:before,.lct_overlay_menu .close span:after{border-radius:4px;height:5px;width:35px;position:absolute;display:block;content:''}.lct_overlay_menu .close span{background:transparent !important}.lct_overlay_menu .close span:before{transform:rotate(45deg)}.lct_overlay_menu .close span:after{transform:rotate(-45deg)}.lct_overlay_menu .outer-close{position:absolute;right:0;top:0;width:85px;height:85px;cursor:pointer}.lct_overlay_menu .fusion-mobile-nav-holder>ul{border:0 !important}.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{background-color:transparent;overflow:hidden}.lct_overlay_menu img{margin-top:10%;max-width:15%}}@media (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait), (max-width: 385px) and (-webkit-device-pixel-ratio: 1){.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{font-size:24px !important}}
     1a.button,a.fusion-button,a.fusion-button:hover,.fusion-button,.fusion-button:hover{text-decoration:none !important}.fusion-header-wrapper .menu-item a,.fusion-header-wrapper .menu-item a:hover,.fusion-social-network-icon,.fusion-social-network-icon:hover,.fusion-mobile-nav-holder a,.fusion-footer .fusion-footer-copyright-area{text-decoration:none !important;border-bottom:none !important}.tel,.tel:hover,[href*="tel:"],[href*="tel:"]:hover{cursor:default !important;text-decoration:none !important;border-bottom:none !important}.fusion-format-box .fusion-icon-pen{display:none !important}.pac-container{z-index:99999}#nks-tab-1:not(.nks-active){display:none !important}#nks-content-1>div{padding:0 !important}#wpadminbar{z-index:99999 !important}@media screen and (max-width: 600px){#wpadminbar{top:0 !important}}.simple-image .aligncenter{margin-bottom:0}.fusion-info-box a,.fusion-info-box a:hover{color:#FFFFFF}#lct_after_clear:after{content:".";visibility:hidden;display:block;height:0;clear:both}#hidden,.hidden{display:none}#hidden-imp:not(.acf-error),.hidden-imp:not(.acf-error),#lct_current_user_can_not_access,.lct_current_user_can_not_access{display:none !important}.hidden_inner div{display:none}.hidden_inner_imp div{display:none !important}.disabled{cursor:not-allowed}.disabled_imp{cursor:not-allowed !important}.lct_text_right{text-align:right}.nomargin,.nom{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important}.nomp{margin:0 !important;margin-top:0 !important;margin-bottom:0 !important;margin-left:0 !important;margin-right:0 !important;padding:0 !important;padding-top:0 !important;padding-bottom:0 !important;padding-left:0 !important;padding-right:0 !important}.nom-top{margin-top:0}.lazyframe{background-color:inherit}.lazyframe.map{background-size:contain !important}.lazyframe.map:before{padding-top:60% !important}.lazyframe.birdeye iframe{width:270px !important;border-width:0;display:block;margin:0 auto;overflow:hidden}.lazyframe.birdeye{max-width:270px !important;margin:0 auto}.lazyframe.birdeye:before{padding-top:170px !important}.lazyframe[data-vendor="youtube"]{background-color:#000000 !important}@media screen and (max-width: 1024px){.lct_overlay_menu{position:fixed;width:100%;height:100%;top:0;left:0;transition:all .5s ease;z-index:2;opacity:0;visibility:hidden}.lct_overlay_menu.open{opacity:1;visibility:visible;overflow-y:scroll}.lct_overlay_menu .fusion-mobile-nav-holder{padding-top:10%}.lct_overlay_menu .close{position:fixed;top:40px;right:45px;z-index:3;cursor:pointer;font-family:sans-serif;opacity:0.8}.lct_overlay_menu .close span,.lct_overlay_menu .close span:before,.lct_overlay_menu .close span:after{border-radius:4px;height:5px;width:35px;position:absolute;display:block;content:''}.lct_overlay_menu .close span{background:transparent !important}.lct_overlay_menu .close span:before{transform:rotate(45deg)}.lct_overlay_menu .close span:after{transform:rotate(-45deg)}.lct_overlay_menu .outer-close{position:absolute;right:0;top:0;width:85px;height:85px;cursor:pointer}.lct_overlay_menu .fusion-mobile-nav-holder>ul{border:0 !important}.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{background-color:transparent;overflow:hidden}.lct_overlay_menu img{margin-top:10%;max-width:15%}}@media (min-device-width: 320px) and (max-device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait), (max-width: 385px) and (-webkit-device-pixel-ratio: 1){.lct_overlay_menu .fusion-mobile-current-nav-item>a,.lct_overlay_menu .fusion-mobile-nav-item a{font-size:24px !important}}
  • lct-useful-shortcodes-functions/trunk/available/email-reminder/includes/classes/PDER.php

    r2002490 r2310439  
    55
    66
     7/**
     8 * @property array args
     9 * @verified NEVER
     10 */
    711class PDER {
    812    /**
    9      * Get Ereminders
    10      * Selects all 'reminders' custom post types from the 'posts' table whose 'post_date' is less than $date and 'post_status' = draft returns rows as a numerically indexed array of objects. Uses $wpdb->get_results() function to fetch the results from the database.
    11      *
    12      * @param string $date   date in YYYY-MM-DD H:i:s format. Defaults to current local time
    13      * @param string $status draft|publish. corresponds to scheduled and sent reminders respectively
    14      *
    15      * @return array numerically indexed array of row objects
     13     * @var string
     14     */
     15    public $post_type = null;
     16    /**
     17     * @var string
     18     */
     19    public $post_type_slug = null;
     20    /**
     21     * @var array
     22     */
     23    public $reminders = [];
     24
     25
     26    /**
     27     * Start up the class
     28     *
     29     * @param array $args
     30     *
     31     * @verified 2020.04.09
     32     */
     33    function __construct( $args = [] ) {
     34        //Store $args
     35        $this->args = $args;
     36
     37
     38        $this->post_type_slug = 'reminder';
     39        $this->post_type      = get_cnst( $this->post_type_slug );
     40
     41
     42        //Setup WordPress action and filter hooks
     43        $this->load_hooks();
     44    }
     45
     46
     47    /**
     48     * Setup WordPress action and filter hooks
     49     *
     50     * @since    2020.7
     51     * @verified 2020.04.09
     52     */
     53    function load_hooks() {
     54        //bail early if already ran
     55        if ( lct_did() )
     56            return;
     57
     58
     59        /**
     60         * everytime
     61         */
     62        add_action( 'lct/is_cache_disabled/cache_flush', [ $this, '_flush' ] );
     63
     64
     65        //if ( lct_frontend() ) {}
     66
     67
     68        //if ( lct_wp_admin_all() ) {}
     69
     70
     71        //if ( lct_wp_admin_non_ajax() ) {}
     72
     73
     74        //if ( lct_ajax_only() ) {}
     75    }
     76
     77
     78    /**
     79     * Clear our cached items when memory gets too full
     80     *
     81     * @since    2020.7
     82     * @verified 2020.04.09
     83     */
     84    function _flush() {
     85        $this->reminders = [];
     86    }
     87
     88
     89    /**
     90     * Clean the ID of the post_id
     91     *
     92     * @param int|WP_Post $post_id
     93     *
     94     * @return int
     95     * @since    2020.7
     96     * @verified 2020.04.09
     97     */
     98    function _get_post_id( $post_id ) {
     99        return lct_get_clean_post_id( $post_id );
     100    }
     101
     102
     103    /**
     104     * Get the object of a particular reminder
     105     *
     106     * @param int|WP_Post $reminder_id        Required. Post ID or post object. Defaults to global $post.
     107     * @param string      $output             Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to
     108     *                                        a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT.
     109     * @param string      $filter             Optional. Type of filter to apply. Accepts 'raw', 'edit', 'db',
     110     *                                        or 'display'. Default 'raw'.
     111     *
     112     * @return WP_Post
     113     * @since    2018.26
     114     * @verified 2020.04.09
     115     */
     116    function get_ereminder( $reminder_id, $output = OBJECT, $filter = 'raw' ) {
     117        $r = null;
     118
     119
     120        if ( ! ( $reminder_id = $this->_get_post_id( $reminder_id ) ) )
     121            return $r;
     122
     123
     124        if ( $this->_reminder_exists( $reminder_id ) )
     125            return $this->_get_existing_reminder( $reminder_id );
     126
     127
     128        if (
     129            ( $post = get_post( $reminder_id, $output, $filter ) ) &&
     130            lct_check_post_type_match( $post, $this->post_type )
     131        ) {
     132            $r           = $post;
     133            $r->postmeta = lct_get_all_post_meta( $reminder_id, false, [ 'strpos_0' => [ 'pyre' ] ] );
     134        }
     135
     136
     137        return $this->_update_reminder( $r );
     138    }
     139
     140
     141    /**
     142     * Update our list of reminders
     143     *
     144     * @param WP_Post $post
     145     *
     146     * @return WP_Post
     147     * @since    2020.7
     148     * @verified 2020.04.09
     149     */
     150    function _update_reminder( $post ) {
     151        if ( $reminder_id = $this->_get_post_id( $post ) )
     152            return $this->reminders[ $reminder_id ] = $post;
     153
     154
     155        return null;
     156    }
     157
     158
     159    /**
     160     * Check if a reminder has been retrieved yet
     161     *
     162     * @param int|WP_Post $reminder_id
     163     *
     164     * @return bool
     165     * @since    2020.7
     166     * @verified 2020.04.09
     167     */
     168    function _reminder_exists( $reminder_id ) {
     169        if (
     170            ( $reminder_id = $this->_get_post_id( $reminder_id ) ) &&
     171            isset( $this->reminders[ $reminder_id ] )
     172        ) {
     173            return true;
     174        }
     175
     176
     177        return false;
     178    }
     179
     180
     181    /**
     182     * Grab the object of a post that we have already retrieved
     183     *
     184     * @param int|WP_Post $reminder_id
     185     *
     186     * @return WP_Post
     187     * @since    2020.7
     188     * @verified 2020.04.09
     189     */
     190    function _get_existing_reminder( $reminder_id ) {
     191        if (
     192            ( $reminder_id = $this->_get_post_id( $reminder_id ) ) &&
     193            $this->_reminder_exists( $reminder_id )
     194        ) {
     195            return $this->reminders[ $reminder_id ];
     196        }
     197
     198
     199        return null;
     200    }
     201
     202
     203    /**
     204     * Delete a reminder & everything attached to it
     205     *
     206     * @param int|WP_Post $reminder_id
     207     *
     208     * @return false|WP_Post|null
     209     * @since    2020.7
     210     * @verified 2020.04.09
     211     */
     212    function delete_reminder( $reminder_id ) {
     213        $reminder_id = $this->_get_post_id( $reminder_id );
     214
     215
     216        lct_delete_all_post_meta( $reminder_id );
     217
     218
     219        return wp_delete_post( $reminder_id, true );
     220    }
     221
     222
     223    /**
     224     * Get an array of a Reminder objects
     225     *
     226     * @param array $args
     227     *
     228     * @return WP_Post[]
    16229     * @since    7.3
    17      * @verified 2018.02.21
    18      */
    19     function get_ereminders( $date = '', $status = 'draft' ) {
    20         global $wpdb;
    21 
    22         if ( $date == '' )
    23             $date = current_time( 'mysql', 1 );
    24 
    25         if ( $status == 'sent' )
    26             $status = 'publish';
    27         elseif ( $status == 'scheduled' )
    28             $status = 'draft';
    29 
    30 
    31         $ereminders = $wpdb->get_results(
    32             $wpdb->prepare(
    33                 "SELECT *
    34                 FROM {$wpdb->posts}
    35                 WHERE post_date_gmt < %s
    36                     AND post_type = %s
    37                     AND post_status = %s
    38                 ORDER BY post_date ASC",
    39                 $date,
    40                 get_cnst( 'reminder' ),
    41                 $status
    42             )
    43         );
    44 
    45 
    46         return $ereminders;
    47     }
    48 
    49 
    50     /**
    51      * Get a specific Ereminder
    52      *
    53      * @param        $post_id
    54      * @param string $status
    55      *
    56      * @return array|null|object
    57      * @since    2018.26
    58      * @verified 2018.03.05
    59      */
    60     function get_ereminder( $post_id, $status = 'draft' ) {
    61         global $wpdb;
    62 
    63         if ( $status == 'sent' )
    64             $status = 'publish';
    65         elseif ( $status == 'scheduled' )
    66             $status = 'draft';
    67 
    68 
    69         $ereminder = $wpdb->get_results(
    70             $wpdb->prepare(
    71                 "SELECT *
    72                 FROM {$wpdb->posts}
    73                 WHERE post_type = %s
    74                     AND post_status = %s
    75                     AND ID = %s",
    76                 get_cnst( 'reminder' ),
    77                 $status,
    78                 $post_id
    79             )
    80         );
    81 
    82 
    83         if ( ! empty( $ereminder ) )
    84             $ereminder = $ereminder[0];
    85 
    86 
    87         return $ereminder;
     230     * @verified 2020.04.09
     231     */
     232    function get_ereminders( $args = [] ) {
     233        $r = [];
     234
     235
     236        /**
     237         * Return early if cache is found
     238         */
     239        $cache_key = lct_cache_key( compact( 'args' ) );
     240        if ( lct_isset_cache( $cache_key ) )
     241            return lct_get_cache( $cache_key );
     242
     243
     244        /**
     245         * Full Post Array
     246         */
     247        $postarr = [
     248            'posts_per_page'         => - 1,
     249            'post_type'              => $this->post_type,
     250            'post_status'            => 'draft',
     251            'cache_results'          => true,
     252            'update_post_meta_cache' => false,
     253            'update_post_term_cache' => false,
     254            'orderby'                => 'post_date_gmt',
     255            'order'                  => 'ASC',
     256        ];
     257        $postarr = wp_parse_args( $args, $postarr );
     258        $posts   = get_posts( $postarr );
     259
     260
     261        if (
     262            ! empty( $posts ) &&
     263            ! empty( $posts[0] ) &&
     264            empty( $postarr['fields'] )
     265        ) {
     266            if ( lct_is_a( $posts[0], 'WP_Post' ) ) {
     267                foreach ( $posts as $v ) {
     268                    $r[ $v->ID ] = $this->get_ereminder( $v->ID );
     269                }
     270            } else {
     271                foreach ( $posts as $v ) {
     272                    $r[ $v ] = $this->get_ereminder( $v );
     273                }
     274            }
     275        } else if ( ! empty( $posts ) ) {
     276            $r = $posts;
     277        }
     278
     279
     280        /**
     281         * Save the value to the cache
     282         */
     283        lct_set_cache( $cache_key, $r );
     284
     285
     286        return $r;
    88287    }
    89288
     
    114313     *
    115314     * @since    2018.26
    116      * @verified 2018.11.28
     315     * @verified 2020.04.15
    117316     */
    118317    function send_ereminder( $post_id ) {
     
    298497                    //delete reminder
    299498                    if ( get_field( zxzacf( 'delete_email' ), $ereminder->ID, false ) ) {
    300                         wp_delete_post( $ereminder->ID, true );
     499                        $this->delete_reminder( $ereminder->ID );
    301500
    302501
     
    336535
    337536                /**
     537                 * To was not set
     538                 */
     539            } else if ( empty( $mail['to'] ) ) {
     540                //TODO: cs - Send an error - 4/15/2020 3:29 PM
     541
     542
     543                /**
    338544                 * Force cancel the reminder
    339545                 */
    340546            } else if ( ! empty( $mail['cancel'] ) ) {
    341                 wp_delete_post( $ereminder->ID, true );
     547                $this->delete_reminder( $ereminder->ID );
    342548            }
    343549        }
  • lct-useful-shortcodes-functions/trunk/available/email-reminder/includes/classes/PDER_Admin.php

    r2061209 r2310439  
    4040     *
    4141     * @since    7.3
    42      * @verified 2018.02.21
     42     * @verified 2020.05.14
    4343     */
    4444    function create_menu() {
     
    4747
    4848
    49         add_dashboard_page( $page_title, $menu_title, 'manage_options', zxzu( get_cnst( 'reminder' ) ), [ &$this, 'ereminder_page' ] );
     49        //add_dashboard_page( $page_title, $menu_title, 'manage_options', zxzu( get_cnst( 'reminder' ) ), [ &$this, 'ereminder_page' ] );
    5050        add_menu_page( $page_title, $menu_title, 'manage_options', zxzu( get_cnst( 'reminder' ) ), [ &$this, 'ereminder_page' ], PDER_ASSETS . '/images/icon.png' );
    5151    }
     
    9999            wp_verify_nonce( $_REQUEST['pder-delete-all-sent-nonce'], 'pder-delete-all-sent' )
    100100        ) {
    101             $this->delete_reminders_many( $_REQUEST, 'sent' );
     101            $this->delete_reminders_many( $_REQUEST );
    102102        }
    103103    }
     
    381381     * Delete all sent reminders
    382382     *
    383      * @param        $data
    384      * @param string $status
     383     * @param array $data
    385384     *
    386385     * @since    7.3
    387      * @verified 2018.02.21
     386     * @verified 2020.04.09
    388387     */
    389     function delete_reminders_many(
    390         $data,
    391         /** @noinspection PhpUnusedParameterInspection */
    392         $status = 'sent'
    393     ) {
     388    function delete_reminders_many( $data ) {
    394389        $pd         = new PDER;
    395         $ereminders = $pd->get_ereminders( current_time( 'mysql', 1 ), 'sent' );
     390        $ereminders = $pd->get_ereminders( [ 'post_status' => 'publish' ] );
    396391        $success    = [];
    397392        $error      = [];
     
    404399        } else {
    405400            foreach ( $ereminders as $ereminder ) {
    406                 if ( wp_delete_post( $ereminder->ID ) ) {
     401                if ( $pd->delete_reminder( $ereminder->ID ) )
    407402                    $success[] = sprintf( __( 'Reminder <strong>#%d</strong> deleted.', 'TD_LCT' ), $ereminder->ID );
    408 
    409 
    410                 } else {
     403                else
    411404                    $error[] = sprintf( __( 'Error deleting reminder <strong>#%d</strong>.', 'TD_LCT' ), $ereminder->ID );
    412                 }
    413405            }
    414406        }
    415407
    416408
    417         /** Return responses **/
    418409        if ( isset( $data['ajax'] ) && $data['ajax'] == 'true' ) {
    419410            $response = [
     
    424415                ]
    425416            ];
     417
     418
    426419            echo json_encode( $response );
    427420            exit;
    428 
    429 
    430421        } else {
    431422            $this->_messages = [
  • lct-useful-shortcodes-functions/trunk/code/__init.php

    r2253752 r2310439  
    355355            if ( ! defined( 'LCT_VALUE_EMPTY' ) )
    356356                define( 'LCT_VALUE_EMPTY', '---empty---' );
     357
     358            if ( ! defined( 'LCT_VALUE_UNSET' ) )
     359                define( 'LCT_VALUE_UNSET', '---not set yet---' );
    357360
    358361
     
    507510            lct_set_plugin( 'w3-total-cache/w3-total-cache.php', 'w3tc' ); //Last Check: Never
    508511            lct_set_plugin( 'woocommerce/woocommerce.php', 'wc' ); //Last Check: Never
     512            lct_set_plugin( 'wp-mail-smtp/wp_mail_smtp.php', 'wp-mail-smtp' ); //Last Check: Never
    509513            lct_set_plugin( 'wp-rocket/wp-rocket.php', 'wp-rocket' ); //Last Check: Never
    510514            lct_set_plugin( 'wp-sweep/wp-sweep.php', 'wp-sweep' ); //Last Check: Never
     
    10251029                lct_load_class( "{$dir}/_admin.php", 'admin', [ 'plugin' => $plugin ] );
    10261030                lct_load_class( "{$dir}/_shortcodes.php", 'shortcodes', [ 'plugin' => $plugin ] );
     1031            }
     1032
     1033
     1034            /**
     1035             * wp-mail-smtp
     1036             */
     1037            $plugin = 'wp-mail-smtp';
     1038            $dir    = "plugins/{$plugin}";
     1039
     1040            if ( lct_plugin_active( $plugin ) ) {
     1041                lct_load_class( "{$dir}/_admin.php", 'admin', [ 'plugin' => $plugin ] );
    10271042            }
    10281043
  • lct-useful-shortcodes-functions/trunk/code/admin/_admin.php

    r2147253 r2310439  
    8888
    8989        add_action( 'add_post_metadata', [ $this, 'dont_save_pings' ], 10, 5 );
     90
     91        add_filter( 'wp_mail', [ $this, 'force_send_to_on_sb' ] );
    9092
    9193
     
    831833        return $file_types;
    832834    }
     835
     836
     837    /**
     838     * Force all emails to be sent to the admin when you are on a sandbox
     839     *
     840     * @param array $atts
     841     *
     842     * @return array
     843     * @since    2020.7
     844     * @verified 2020.04.16
     845     */
     846    function force_send_to_on_sb( $atts ) {
     847        if (
     848            ! ( $admin_email = get_option( 'admin_email' ) ) ||
     849            ! lct_is_sb()
     850        ) {
     851            remove_filter( 'wp_mail', [ $this, 'force_send_to_on_sb' ] );
     852
     853
     854            return $atts;
     855        }
     856
     857
     858        $message_prefix = [];
     859
     860
     861        if ( ! empty( $atts['to'] ) ) {
     862            $message_prefix[] = 'To: ' . $atts['to'];
     863            $atts['to']       = $admin_email;
     864
     865
     866            if ( $tmp = lct_get_setting( 'force_send_to_on_sb_to' ) ) {
     867                if ( is_array( $tmp ) )
     868                    $tmp = implode( ',', $tmp );
     869
     870
     871                $atts['to'] = $tmp;
     872            }
     873        }
     874
     875
     876        if ( ! empty( $atts['headers'] ) ) {
     877            if ( ! is_array( $atts['headers'] ) ) {
     878                // Explode the headers out, so this function can take
     879                // both string headers and an array of headers.
     880                $tmp_headers = explode( "\n", str_replace( "\r\n", "\n", $atts['headers'] ) );
     881            } else {
     882                $tmp_headers = $atts['headers'];
     883            }
     884
     885
     886            // If it's actually got contents.
     887            if ( ! empty( $tmp_headers ) ) {
     888                // Iterate through the raw headers.
     889                foreach ( (array) $tmp_headers as $key => $header ) {
     890                    if ( strpos( $header, ':' ) === false )
     891                        continue;
     892
     893
     894                    // Explode them out.
     895                    [ $name, $content ] = explode( ':', trim( $header ), 2 );
     896                    // Cleanup crew.
     897                    $name    = strtolower( trim( $name ) );
     898                    $content = trim( $content );
     899
     900
     901                    switch ( $name ) {
     902                        case 'cc':
     903                        case 'bcc':
     904                        case 'reply-to':
     905                            $message_prefix[] = ucwords( $name ) . ': ' . $content;
     906                            unset( $tmp_headers[ $key ] );
     907                            break;
     908
     909
     910                        default:
     911                    }
     912                }
     913            }
     914
     915
     916            $atts['headers'] = implode( "\r\n", $tmp_headers );
     917        }
     918
     919
     920        if ( ! empty( $message_prefix ) ) {
     921            $atts['message'] = '<h3>Original Email Settings:</h3>' . implode( '<br />', $message_prefix ) . "\r\n" . $atts['message'];
     922        }
     923
     924
     925        return $atts;
     926    }
    833927}
  • lct-useful-shortcodes-functions/trunk/code/admin/git/_lct_wp/.htaccess

    r2238765 r2310439  
    1 # BEGIN WP Rocket v3.4.4
     1# BEGIN WP Rocket v3.5.5.1
    22# Use UTF-8 encoding for anything served text/plain or text/html
    33AddDefaultCharset UTF-8
     
    1919<FilesMatch "\.(html|htm|rtf|rtx|txt|xsd|xsl|xml)$">
    2020<IfModule mod_headers.c>
    21 Header set X-Powered-By "WP Rocket/3.4.4"
     21Header set X-Powered-By "WP Rocket/3.5.5.1"
    2222Header unset Pragma
    2323Header append Cache-Control "public"
     
    143143## _editzz Name: .htaccess
    144144## URI:
    145 ## Version: 8.2
     145## Version: 8.3
    146146## Author: Cary Smith
    147147## Author URI:
     
    172172RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    173173RewriteCond %{HTTP_HOST} !\.eetah\.com?$
    174 RewriteRule ^(.*/)?(_pimg|_editzz|\.git|apps/_dev|apps/_prod|bower\.json|composer\.json|_p1\.php|_p2\.php|gulpfile\.js|package\.json)+ - [R=403,L]
     174RewriteRule ^(.*/)?(_pimg|_editzz|\.git|apps/_dev|apps/_prod|bower\.json|composer\.json|_p1\.php|_p2\.php|gulpfile\.js|package\.json|apps/scratch1\.php|apps/scratch2\.php)+ - [R=403,L]
    175175## We use this IfModule for the WAMP server, I have no idea what mod_proxy_express.c is, but I know we won't ever need it on a production server.
    176176<IfModule mod_proxy_express.c>
  • lct-useful-shortcodes-functions/trunk/code/admin/lct.php

    r2183253 r2310439  
    1919        public $action = null;
    2020        public $api = null;
    21         public $api_info = [];
     21        public $api_info = [
     22            'full'           => null,
     23            'version'        => null,
     24            'route'          => null,
     25            'extended_route' => null,
     26        ];
    2227        public $special_action = null;
    2328        public $post = [];
     
    143148         *
    144149         * @since    2017.2
    145          * @verified 2019.05.02
     150         * @verified 2020.04.15
    146151         */
    147152        function init() {
     
    183188
    184189
    185                 if ( $URI_parts[1] )
     190                if ( isset( $URI_parts[1] ) )
    186191                    $this->api_info['version'] = $URI_parts[1];
    187192
    188193
    189                 if ( $URI_parts[2] )
     194                if ( isset( $URI_parts[2] ) )
    190195                    $this->api_info['route'] = $URI_parts[2];
    191196
    192197
    193                 if ( $URI_parts[3] )
     198                if ( isset( $URI_parts[3] ) )
    194199                    $this->api_info['extended_route'] = $URI_parts[3];
    195200
  • lct-useful-shortcodes-functions/trunk/code/api/_helpers.php

    r2263542 r2310439  
    28422842 * @return bool
    28432843 * @since    2018.22
    2844  * @verified 2020.12.31
     2844 * @verified 2020.04.09
    28452845 */
    28462846function lct_quick_send_email( $custom_args = [] ) {
     
    28652865    $mail->set_subject( $args['subject'] );
    28662866    $mail->set_message( $args['message'] );
    2867     $mail->send();
    2868 
    2869 
    2870     return true;
     2867
     2868
     2869    return $mail->send();
    28712870}
    28722871
     
    33513350 * Get a rel term_id of a post that has a rel
    33523351 *
    3353  * @param int    $post_id
    3354  * @param string $default
     3352 * @param int|WP_Post $post_id
     3353 * @param string      $default
    33553354 *
    33563355 * @return int
    33573356 * @since    2019.29
    3358  * @verified 2019.12.13
     3357 * @verified 2020.04.10
    33593358 */
    33603359function lct_get_rel_tax_id( $post_id, $default = null ) {
    3361     $r = $default;
     3360    $r       = $default;
     3361    $post_id = lct_get_clean_post_id( $post_id );
    33623362
    33633363
     
    34403440    return $v !== null;
    34413441}
     3442
     3443
     3444/**
     3445 * Check if a post is the desired post_type
     3446 *
     3447 * @param WP_Post|int $post
     3448 * @param string      $post_type
     3449 *
     3450 * @return bool
     3451 * @since    2020.7
     3452 * @verified 2020.04.09
     3453 */
     3454function lct_check_post_type_match( $post, $post_type ) {
     3455    $r = false;
     3456
     3457
     3458    if (
     3459        ! lct_is_wp_error( $post ) &&
     3460        isset( $post->post_type ) &&
     3461        $post->post_type === $post_type
     3462    ) {
     3463        $r = true;
     3464    }
     3465
     3466
     3467    return $r;
     3468}
  • lct-useful-shortcodes-functions/trunk/code/features/class/mail.php

    r1644179 r2310439  
    66
    77/**
     8 * @property array args
    89 * @verified 2017.04.20
    910 */
     
    2324     * Start up the class
    2425     *
    25      * @param $args
    26      *
    27      * @verified 2017.04.20
     26     * @param array $args
     27     *
     28     * @verified 2020.04.09
    2829     */
    2930    function __construct( $args = [] ) {
    3031        //Store $args
    3132        $this->args = $args;
    32 
    33 
    34         //Store parent class, maybe
    35         if ( $this->args['load_parent'] )
    36             $this->zxzp = lct();
    3733
    3834
     
    259255    function send() {
    260256        if ( $this->to )
    261             wp_mail( $this->get_to(), $this->get_subject(), $this->get_message(), $this->get_headers() );
     257            return wp_mail( $this->get_to(), $this->get_subject(), $this->get_message(), $this->get_headers() );
     258
     259
     260        return false;
    262261    }
    263262}
  • lct-useful-shortcodes-functions/trunk/code/plugins/Avada/api/overrides.php

    r2263542 r2310439  
    476476         *
    477477         * @since    2017.34
    478          * @verified 2018.03.22
     478         * @verified 2020.04.28
    479479         */
    480480        function avada_main_menu( $flyout_menu = false ) {
     
    499499                avada_main_menu_v5( $flyout_menu );
    500500            }
     501
     502
     503            do_action( 'lct/avada_main_menu' );
    501504        }
    502505
     
    541544
    542545                $main_menu = wp_nav_menu( $main_menu_args );
     546
    543547
    544548                return $main_menu;
     
    638642                $main_menu = wp_nav_menu( $main_menu_args );
    639643
     644
    640645                return $main_menu;
    641646
     
    753758                    $main_menu        .= wp_nav_menu( $sticky_menu_args );
    754759                }
     760
    755761
    756762                return $main_menu;
  • lct-useful-shortcodes-functions/trunk/code/plugins/acf/api/form.php

    r2253752 r2310439  
    6565 * @return bool|string
    6666 * @since    7.49
    67  * @verified 2020.02.12
     67 * @verified 2020.04.16
    6868 */
    6969function lct_acf_form2( $a ) {
     
    215215     */
    216216    if ( $a['form_class'] ) {
    217         $a['form_attributes']['class'] = $a['form_class'];
     217        $a['form_attributes']['class'] = 'acf-form ' . $a['form_class'];
    218218
    219219
     
    13791379 * @return mixed
    13801380 * @since    2017.84
    1381  * @verified 2020.12.30
     1381 * @verified 2020.04.16
    13821382 */
    13831383function lct_acf_format_value_user( $value, $return_format = 'value' ) {
     
    13981398                $user_ids[] = (int) $value['ID'];
    13991399                break;
     1400            } else if ( ! empty( $user->ID ) ) {
     1401                $user_ids[] = (int) $user->ID;
    14001402            } else if ( ! empty( $user['ID'] ) ) {
    14011403                $user_ids[] = (int) $user['ID'];
  • lct-useful-shortcodes-functions/trunk/code/plugins/acf/instant_save.php

    r2253752 r2310439  
    132132     *
    133133     * @since    0.0
    134      * @verified 2020.02.12
     134     * @verified 2020.05.20
    135135     */
    136136    function ajax_handler() {
     
    192192                $this->vars[ $this->meta->field_key ] = str_replace( [ 'acf-', '-input' ], '', $this->vars[ $this->meta->field_key ] );
    193193                $field                                = get_field_object( $this->vars[ $this->meta->field_key ], $this->vars['post_id'], false, false );
     194                $current_db_value                     = get_metadata( $this->vars['info_type'], $this->vars['post_id'], $field['_name'] );
    194195                $parent_obj                           = null;
    195196                $parent_repeater                      = null;
     
    205206                if (
    206207                    $this->vars[ $this->meta->value_old ] === null &&
     208                    isset( $current_db_value[0] ) &&
    207209                    ( $value_old = lct_acf_get_old_field_value( $this->vars[ $this->meta->field_key ], $this->vars['post_id'], false ) ) !== false
    208210                ) {
    209211                    $this->vars[ $this->meta->value_old ] = $value_old;
     212                } else if ( ! isset( $current_db_value[0] ) ) {
     213                    $this->vars[ $this->meta->value_old ] = LCT_VALUE_UNSET;
    210214                }
    211215
     
    375379     * @return bool|false|int
    376380     * @since    0.0
    377      * @verified 2019.04.08
     381     * @verified 2020.05.20
    378382     */
    379383    function add_comment( $vars ) {
     
    383387            $vars['info_type'] !== 'post' || //don't complete if it is NOT a post field
    384388            lct_is_new_save_post( $vars['post_id'] ) || //don't complete if it is a new post
    385             ! $vars[ $this->meta->field_key ] //don't complete if we don't have a field key
     389            ! $vars[ $this->meta->field_key ] || //don't complete if we don't have a field key
     390            (
     391                ! empty( $vars['post_id'] ) && //don't complete if we want to exclude pages and this is a page
     392                lct_acf_get_option_raw( 'audit_save_postmeta_exclude_pages' ) &&
     393                get_post_type( $vars['post_id'] ) === 'page'
     394            ) ||
     395            (
     396                ! empty( $vars['post_id'] ) && //don't complete if we want to exclude pages and this is a page
     397                ( $post_type = get_post_type( $vars['post_id'] ) ) &&
     398                in_array( $post_type, [ 'nav_menu_item', 'attachment' ] )
     399            )
    386400        ) {
    387401            return false;
     
    390404
    391405        $current_user    = wp_get_current_user();
     406        $current_field   = get_field_object( $vars[ $this->meta->field_key ], $vars['post_id'], false, false );
    392407        $comment_content = '';
    393408
     
    398413
    399414            if (
    400                 ( $current_field = get_field_object( $vars[ $this->meta->field_key ], $vars['post_id'], false, false ) ) &&
     415                $current_field &&
    401416                in_array( $current_field['_name'], $audit_exclude )
    402417            ) {
     
    406421
    407422
    408         if ( ! $vars[ $this->meta->value ] )
    409             $vars[ $this->meta->value ] = LCT_VALUE_EMPTY;
    410 
    411         if ( ! $vars[ $this->meta->value_old ] )
    412             $vars[ $this->meta->value_old ] = LCT_VALUE_EMPTY;
     423        if ( ! $vars[ $this->meta->value ] ) {
     424            if (
     425                ! in_array( $current_field['type'], [ 'radio', 'true_false' ] ) ||
     426                (
     427                    $vars[ $this->meta->value ] !== 0 &&
     428                    $vars[ $this->meta->value ] !== '0'
     429                )
     430            ) {
     431                $vars[ $this->meta->value ] = LCT_VALUE_EMPTY;
     432            }
     433        }
     434
     435        if ( ! $vars[ $this->meta->value_old ] ) {
     436            if (
     437                ! in_array( $current_field['type'], [ 'radio', 'true_false' ] ) ||
     438                (
     439                    $vars[ $this->meta->value_old ] !== 0 &&
     440                    $vars[ $this->meta->value_old ] !== '0'
     441                )
     442            ) {
     443                $vars[ $this->meta->value_old ] = LCT_VALUE_EMPTY;
     444            }
     445        }
    413446
    414447
     
    464497     * @return mixed
    465498     * @since    0.0
    466      * @verified 2019.05.02
     499     * @verified 2020.05.20
    467500     */
    468501    function non_ajax_add_comment( $value, $post_id, $field ) {
     
    478511        $vars[ $this->meta->value ]      = $value;
    479512        $vars[ $this->meta->audit_type ] = 'acf_update_field';
     513        $current_db_value                = get_metadata( $this->vars['info_type'], $this->vars['post_id'], $field['_name'] );
    480514
    481515
     
    497531
    498532        if (
    499             lct_doing() || //don't complete through ajax
     533            (
     534                lct_doing() && //don't complete through ajax
     535                isset( $vars['action'] ) &&
     536                $vars['action'] === zxzu( 'acf_instant_save' )
     537            ) ||
    500538            empty( $vars['info_id'] ) || //don't complete if there is not a post_id field
    501539            $vars['info_type'] !== 'post' || //don't complete if it is NOT a post field
     
    504542            $field['type'] === 'repeater' //don't complete if it is repeater field
    505543        ) {
     544            lct_undid();
     545
     546
    506547            return $value;
    507548        }
     
    510551        if (
    511552            $vars[ $this->meta->value_old ] === null &&
     553            isset( $current_db_value[0] ) &&
    512554            ( $value_old = lct_acf_get_old_field_value( $vars[ $this->meta->field_key ], $vars['post_id'], false ) ) !== false
    513555        ) {
     
    527569                $vars[ $this->meta->value_old ] = get_field( $field['name'], $vars['post_id'], false );
    528570            }
     571        } else if ( ! isset( $current_db_value[0] ) ) {
     572            $vars[ $this->meta->value_old ] = LCT_VALUE_UNSET;
    529573        }
    530574
  • lct-useful-shortcodes-functions/trunk/code/plugins/acf/op_main_fixes_cleanups.php

    r2183253 r2310439  
    924924     *
    925925     * @since    5.40
    926      * @verified 2019.07.11
     926     * @verified 2020.03.24
    927927     */
    928928    function lct_cleanup_uploads() {
     
    10351035
    10361036            /**
     1037             * Prepare the array for counting images
     1038             */
     1039            foreach ( $this->post_info['image_sizes_managed'] as $k => $v ) {
     1040                $this->post_info['image_sizes_managed'][ $k ] = [ 'label' => $v, 'count' => 0 ];
     1041            }
     1042
     1043
     1044            /**
    10371045             * Removed images if they are a disabled size
    10381046             * Produce an error for images of disabled size that are still in use
     
    12561264                         * Check the other sizes
    12571265                         */
    1258                         if (
    1259                             (
    1260                                 $delete_all_sizes ||
    1261                                 ! $in_use
    1262                             ) &&
    1263                             ! empty( $_att_meta['sizes'] )
    1264                         ) {
     1266                        if ( ! empty( $_att_meta['sizes'] ) ) {
    12651267                            foreach ( $_att_meta['sizes'] as $size => $_att_sizes ) {
    1266                                 $_image_info = image_get_intermediate_size( $att_id, $size );
    1267 
    1268 
    1269                                 /**
    1270                                  * Something weird is wrong
    1271                                  * check manually
    1272                                  */
     1268                                $this->post_info['image_sizes_managed'][ $size ]['count'] ++;
     1269
     1270
    12731271                                if (
    1274                                     empty( $_image_info ) ||
    1275                                     empty( $_att_sizes['file'] ) ||
    1276                                     empty( $_image_info['file'] ) ||
    1277                                     empty( $_image_info['path'] ) ||
    1278                                     $_image_info['file'] !== $_att_sizes['file']
     1272                                    $delete_all_sizes ||
     1273                                    ! $in_use
    12791274                                ) {
    1280                                     $this->post_info['disabled_images_note'][ 'zwrong3_' . $att_id ] = sprintf( 'Something is wrong #3: %s %s (%s)', $att_id, $_att_sizes['file'], $size );
    1281 
    1282 
    1283                                     /**
    1284                                      * Image is on the server
    1285                                      */
    1286                                 } else if (
    1287                                     ! empty( $_att_sizes['file'] ) &&
    1288                                     ! empty( $_image_info['path'] ) &&
    1289                                     $_image_info['file'] === $_att_sizes['file'] &&
    1290                                     ( $_image_path = $uploads_path . $_image_info['path'] ) &&
    1291                                     file_exists( $_image_path )
    1292                                 ) {
    1293                                     if ( $delete_all_sizes ) {
    1294                                         @unlink( $_image_path );
    1295 
    1296 
    1297                                         unset( $att_meta[ $att_id ]['sizes'][ $size ] );
    1298                                         unset( $att_meta_update[ $att_id ] );
    1299 
    1300 
    1301                                         wp_update_attachment_metadata( $att_id, $att_meta[ $att_id ] );
    1302                                     } else if ( $exists = lct_get_posts_with_image( $att_id, $_att_sizes ) ) {
    1303                                         $in_use = true;
    1304                                         break;
    1305                                     } else if ( $exists = lct_get_featured_image_posts_with_image( $att_id ) ) {
    1306                                         $in_use = true;
    1307                                         break;
    1308                                     } else if ( $exists = lct_get_postmetas_with_image( $att_id, $_att_sizes ) ) {
    1309                                         $in_use = true;
    1310                                         break;
    1311                                     } else if ( $exists = lct_get_termmetas_with_image( $att_id, $_att_sizes ) ) {
    1312                                         $in_use = true;
    1313                                         break;
    1314                                     } else if ( $exists = lct_get_usermetas_with_image( $att_id, $_att_sizes ) ) {
    1315                                         $in_use = true;
    1316                                         break;
    1317                                     } else if ( $exists = lct_get_options_with_image( $att_id, $_att_sizes ) ) {
    1318                                         $in_use = true;
    1319                                         break;
    1320                                     }
     1275                                    $_image_info = image_get_intermediate_size( $att_id, $size );
    13211276
    13221277
    13231278                                    /**
    13241279                                     * Something weird is wrong
     1280                                     * check manually
    13251281                                     */
    1326                                 } else {
    1327                                     $this->post_info['disabled_images_note'][ 'zwrong4_' . $att_id ] = sprintf( 'Something is wrong #4: %s %s (%s)', $att_id, $_att_sizes['file'], $size );
     1282                                    if (
     1283                                        empty( $_image_info ) ||
     1284                                        empty( $_att_sizes['file'] ) ||
     1285                                        empty( $_image_info['file'] ) ||
     1286                                        empty( $_image_info['path'] ) ||
     1287                                        $_image_info['file'] !== $_att_sizes['file']
     1288                                    ) {
     1289                                        $this->post_info['disabled_images_note'][ 'zwrong3_' . $att_id ] = sprintf( 'Something is wrong #3: %s %s (%s)', $att_id, $_att_sizes['file'], $size );
     1290
     1291
     1292                                        /**
     1293                                         * Image is on the server
     1294                                         */
     1295                                    } else if (
     1296                                        ! empty( $_att_sizes['file'] ) &&
     1297                                        ! empty( $_image_info['path'] ) &&
     1298                                        $_image_info['file'] === $_att_sizes['file'] &&
     1299                                        ( $_image_path = $uploads_path . $_image_info['path'] ) &&
     1300                                        file_exists( $_image_path )
     1301                                    ) {
     1302                                        if ( $delete_all_sizes ) {
     1303                                            @unlink( $_image_path );
     1304
     1305
     1306                                            unset( $att_meta[ $att_id ]['sizes'][ $size ] );
     1307                                            unset( $att_meta_update[ $att_id ] );
     1308
     1309
     1310                                            wp_update_attachment_metadata( $att_id, $att_meta[ $att_id ] );
     1311                                        } else if ( $exists = lct_get_posts_with_image( $att_id, $_att_sizes ) ) {
     1312                                            $in_use = true;
     1313                                            break;
     1314                                        } else if ( $exists = lct_get_featured_image_posts_with_image( $att_id ) ) {
     1315                                            $in_use = true;
     1316                                            break;
     1317                                        } else if ( $exists = lct_get_postmetas_with_image( $att_id, $_att_sizes ) ) {
     1318                                            $in_use = true;
     1319                                            break;
     1320                                        } else if ( $exists = lct_get_termmetas_with_image( $att_id, $_att_sizes ) ) {
     1321                                            $in_use = true;
     1322                                            break;
     1323                                        } else if ( $exists = lct_get_usermetas_with_image( $att_id, $_att_sizes ) ) {
     1324                                            $in_use = true;
     1325                                            break;
     1326                                        } else if ( $exists = lct_get_options_with_image( $att_id, $_att_sizes ) ) {
     1327                                            $in_use = true;
     1328                                            break;
     1329                                        }
     1330
     1331
     1332                                        /**
     1333                                         * Something weird is wrong
     1334                                         */
     1335                                    } else {
     1336                                        $this->post_info['disabled_images_note'][ 'zwrong4_' . $att_id ] = sprintf( 'Something is wrong #4: %s %s (%s)', $att_id, $_att_sizes['file'], $size );
     1337                                    }
    13281338                                }
    13291339                            }
     
    15831593            echo '<h2 style="margin-bottom: 0;text-decoration: underline;">Managed image sizes</h2>';
    15841594            echo '<p style="margin-top: 0;">';
    1585             foreach ( $this->post_info['image_sizes_managed'] as $k => $v ) {
    1586                 echo $k . ' :: ' . $v . '<br />';
     1595            foreach ( $this->post_info['image_sizes_managed'] as $k => $info ) {
     1596                echo $k . ' :: ' . $info['label'] . ' [' . $info['count'] . ']<br />';
    15871597            }
    15881598            echo '</p>';
     
    28582868     *
    28592869     * @since    5.40
    2860      * @verified 2019.07.30
     2870     * @verified 2020.04.24
    28612871     */
    28622872    function cleanup_guid_link_cleanup( $post, $single = false ) {
     
    30553065                            ) {
    30563066                                if ( lct_taxonomy_exists_by_slug( $path_tmp[0] ) ) {
    3057                                     $path_object = lct_get_taxonomy_by_path( "/{$path_tmp[1]}/" );
     3067                                    unset( $path_tmp[0] );
     3068
     3069                                    $path_tmp = implode( '/', $path_tmp );
     3070
     3071                                    $path_object = lct_get_taxonomy_by_path( "/{$path_tmp}/" );
    30583072
    30593073
  • lct-useful-shortcodes-functions/trunk/code/plugins/acf/op_main_settings_groups.php

    r2217093 r2310439  
    44964496            ],
    44974497            [
    4498                 'key'                => 'field_57edd15b02a7e',
    4499                 'label'              => 'Save an LCT audit entry for postmeta edits',
    4500                 'name'               => 'lct:::audit_save_postmeta',
    4501                 'type'               => 'true_false',
    4502                 'instructions'       => '',
    4503                 'required'           => 0,
    4504                 'conditional_logic'  => 0,
    4505                 'wrapper'            => [
    4506                     'width' => '',
    4507                     'class' => '',
    4508                     'id'    => '',
    4509                 ],
    4510                 'default_value'      => 0,
    4511                 'message'            => '',
    4512                 'ui'                 => 1,
    4513                 'ui_on_text'         => 'Enable',
    4514                 'ui_off_text'        => 'Disable',
    4515                 'lct_class_selector' => '',
    4516                 'menu_order'         => 3,
    4517             ],
    4518             [
    4519                 'key'                => 'field_577c2b26c1972',
    4520                 'label'              => 'Use Email Queue System',
    4521                 'name'               => 'lct:::enable_email-reminder',
    4522                 'type'               => 'true_false',
    4523                 'instructions'       => '',
    4524                 'required'           => 0,
    4525                 'conditional_logic'  => 0,
    4526                 'wrapper'            => [
    4527                     'width' => '',
    4528                     'class' => '',
    4529                     'id'    => '',
    4530                 ],
    4531                 'default_value'      => 0,
    4532                 'message'            => '',
    4533                 'ui'                 => 1,
    4534                 'ui_on_text'         => 'Enable',
    4535                 'ui_off_text'        => 'Disable',
    4536                 'lct_class_selector' => '',
    4537                 'menu_order'         => 4,
    4538             ],
    4539             [
    45404498                'key'                => 'field_58292f4be7b13',
    45414499                'label'              => 'Remove Meta Boxes for Taxonomies',
     
    45624520                'lct_class_selector' => '',
    45634521                'placeholder'        => '',
    4564                 'menu_order'         => 5,
     4522                'menu_order'         => 3,
    45654523            ],
    45664524            [
     
    45904548                'lct_class_selector' => '',
    45914549                'placeholder'        => '',
    4592                 'menu_order'         => 6,
     4550                'menu_order'         => 4,
    45934551            ],
    45944552            [
     
    46154573                'ui'                 => 1,
    46164574                'lct_class_selector' => '',
    4617                 'menu_order'         => 7,
     4575                'menu_order'         => 5,
    46184576            ],
    46194577            [
     
    46364594                'ui_off_text'        => 'Disable',
    46374595                'lct_class_selector' => '',
    4638                 'menu_order'         => 8,
     4596                'menu_order'         => 6,
    46394597            ],
    46404598            [
    46414599                'key'               => 'field_59035e0dd7bf6',
    4642                 'label'             => 'Pages, Posts, Post Types, Taxonomies, ACF Fields Etc.',
     4600                'label'             => 'Content Restrictions',
    46434601                'name'              => '',
    46444602                'type'              => 'tab',
     
    46534611                'placement'         => 'top',
    46544612                'endpoint'          => 1,
    4655                 'menu_order'        => 9,
     4613                'menu_order'        => 7,
    46564614            ],
    46574615            [
     
    46744632                'ui_off_text'        => 'Disable',
    46754633                'lct_class_selector' => '',
    4676                 'menu_order'         => 10,
     4634                'menu_order'         => 8,
    46774635            ],
    46784636            [
     
    46974655                'lct_roles_n_caps'          => '',
    46984656                'lct_roles_n_caps_viewonly' => '',
    4699                 'menu_order'                => 11,
     4657                'menu_order'                => 9,
    47004658            ],
    47014659            [
     
    47184676                'ui_off_text'        => 'Disable',
    47194677                'lct_class_selector' => '',
    4720                 'menu_order'         => 12,
     4678                'menu_order'         => 10,
    47214679            ],
    47224680            [
     
    47394697                'ui_off_text'        => 'Disable',
    47404698                'lct_class_selector' => '',
    4741                 'menu_order'         => 13,
     4699                'menu_order'         => 11,
    47424700            ],
    47434701            [
     
    47744732                'lct_class_selector' => '',
    47754733                'placeholder'        => '',
    4776                 'menu_order'         => 14,
     4734                'menu_order'         => 12,
    47774735            ],
    47784736            [
     
    47954753                'ui_off_text'        => 'Disable',
    47964754                'lct_class_selector' => '',
    4797                 'menu_order'         => 15,
     4755                'menu_order'         => 13,
    47984756            ],
    47994757            [
     
    48304788                'lct_class_selector' => '',
    48314789                'placeholder'        => '',
    4832                 'menu_order'         => 16,
     4790                'menu_order'         => 14,
    48334791            ],
    48344792            [
     
    48514809                'ui_off_text'        => 'Disable',
    48524810                'lct_class_selector' => '',
    4853                 'menu_order'         => 17,
     4811                'menu_order'         => 15,
    48544812            ],
    48554813            [
     
    51075065                    ],
    51085066                ],
    5109                 'menu_order'         => 18,
     5067                'menu_order'         => 16,
    51105068            ],
    51115069            [
     
    51285086                'ui_off_text'        => 'Disable',
    51295087                'lct_class_selector' => '',
    5130                 'menu_order'         => 19,
     5088                'menu_order'         => 17,
    51315089            ],
    51325090            [
     
    53845342                    ],
    53855343                ],
     5344                'menu_order'         => 18,
     5345            ],
     5346            [
     5347                'key'               => 'field_5ec55bb4d2850',
     5348                'label'             => 'Conditional Post Types',
     5349                'name'              => '',
     5350                'type'              => 'tab',
     5351                'instructions'      => '',
     5352                'required'          => 0,
     5353                'conditional_logic' => 0,
     5354                'wrapper'           => [
     5355                    'width' => '',
     5356                    'class' => 'hide_label',
     5357                    'id'    => '',
     5358                ],
     5359                'placement'         => 'top',
     5360                'endpoint'          => 0,
     5361                'menu_order'        => 19,
     5362            ],
     5363            [
     5364                'key'                => 'field_577c2b26c1972',
     5365                'label'              => 'Use Email Queue System',
     5366                'name'               => 'lct:::enable_email-reminder',
     5367                'type'               => 'true_false',
     5368                'instructions'       => '',
     5369                'required'           => 0,
     5370                'conditional_logic'  => 0,
     5371                'wrapper'            => [
     5372                    'width' => '',
     5373                    'class' => '',
     5374                    'id'    => '',
     5375                ],
     5376                'default_value'      => 0,
     5377                'message'            => '',
     5378                'ui'                 => 1,
     5379                'ui_on_text'         => 'Enable',
     5380                'ui_off_text'        => 'Disable',
     5381                'lct_class_selector' => '',
    53865382                'menu_order'         => 20,
    53875383            ],
     
    55745570                'lct_class_selector' => '',
    55755571                'menu_order'         => 27,
     5572            ],
     5573            [
     5574                'key'               => 'field_5ec55bfad2851',
     5575                'label'             => 'Audit Logging',
     5576                'name'              => '',
     5577                'type'              => 'tab',
     5578                'instructions'      => '',
     5579                'required'          => 0,
     5580                'conditional_logic' => 0,
     5581                'wrapper'           => [
     5582                    'width' => '',
     5583                    'class' => 'hide_label',
     5584                    'id'    => '',
     5585                ],
     5586                'placement'         => 'top',
     5587                'endpoint'          => 0,
     5588                'menu_order'        => 28,
     5589            ],
     5590            [
     5591                'key'                => 'field_57edd15b02a7e',
     5592                'label'              => 'Logging for Postmeta Edits',
     5593                'name'               => 'lct:::audit_save_postmeta',
     5594                'type'               => 'true_false',
     5595                'instructions'       => '',
     5596                'required'           => 0,
     5597                'conditional_logic'  => 0,
     5598                'wrapper'            => [
     5599                    'width' => '',
     5600                    'class' => '',
     5601                    'id'    => '',
     5602                ],
     5603                'message'            => '',
     5604                'default_value'      => 0,
     5605                'ui'                 => 1,
     5606                'ui_on_text'         => 'Enable',
     5607                'ui_off_text'        => 'Disable',
     5608                'lct_class_selector' => '',
     5609                'menu_order'         => 29,
     5610            ],
     5611            [
     5612                'key'                => 'field_5ec55cfb5f9a9',
     5613                'label'              => 'Exclude Pages From Logging',
     5614                'name'               => 'lct:::audit_save_postmeta_exclude_pages',
     5615                'type'               => 'true_false',
     5616                'instructions'       => '',
     5617                'required'           => 0,
     5618                'conditional_logic'  => [
     5619                    [
     5620                        [
     5621                            'field'    => 'field_57edd15b02a7e',
     5622                            'operator' => '==',
     5623                            'value'    => '1',
     5624                        ],
     5625                    ],
     5626                ],
     5627                'wrapper'            => [
     5628                    'width' => '',
     5629                    'class' => '',
     5630                    'id'    => '',
     5631                ],
     5632                'message'            => '',
     5633                'default_value'      => 0,
     5634                'ui'                 => 1,
     5635                'ui_on_text'         => 'Exclude',
     5636                'ui_off_text'        => 'Include',
     5637                'lct_class_selector' => '',
     5638                'menu_order'         => 30,
    55765639            ],
    55775640            [
     
    55905653                'placement'         => 'top',
    55915654                'endpoint'          => 0,
    5592                 'menu_order'        => 28,
     5655                'menu_order'        => 31,
    55935656            ],
    55945657            [
     
    56115674                'ui_off_text'        => 'Off',
    56125675                'lct_class_selector' => '',
    5613                 'menu_order'         => 29,
     5676                'menu_order'         => 32,
    56145677            ],
    56155678            [
     
    56345697                'ui_off_text'        => 'Unlock',
    56355698                'lct_class_selector' => '',
    5636                 'menu_order'         => 30,
     5699                'menu_order'         => 33,
    56375700            ],
    56385701            [
     
    56635726                'multiple'          => 1,
    56645727                'return_format'     => 'array',
    5665                 'menu_order'        => 31,
     5728                'menu_order'        => 34,
    56665729            ],
    56675730            [
     
    56885751                'display_format'    => 'g:i a',
    56895752                'return_format'     => 'g:i a',
    5690                 'menu_order'        => 32,
     5753                'menu_order'        => 35,
    56915754            ],
    56925755            [
     
    57095772                'ui_off_text'        => '',
    57105773                'lct_class_selector' => '',
    5711                 'menu_order'         => 33,
     5774                'menu_order'         => 36,
    57125775            ],
    57135776            [
     
    57385801                'maxlength'          => '',
    57395802                'lct_class_selector' => '',
    5740                 'menu_order'         => 34,
     5803                'menu_order'         => 37,
    57415804            ],
    57425805            [
     
    57595822                'ui_off_text'        => '',
    57605823                'lct_class_selector' => '',
    5761                 'menu_order'         => 35,
     5824                'menu_order'         => 38,
    57625825            ],
    57635826            [
     
    57885851                'maxlength'          => '',
    57895852                'lct_class_selector' => '',
    5790                 'menu_order'         => 36,
     5853                'menu_order'         => 39,
    57915854            ],
    57925855            [
     
    58095872                'ui_off_text'        => 'Disable',
    58105873                'lct_class_selector' => '',
    5811                 'menu_order'         => 37,
     5874                'menu_order'         => 40,
    58125875            ],
    58135876            [
     
    58325895                'lct_roles_n_caps'          => '',
    58335896                'lct_roles_n_caps_viewonly' => '',
    5834                 'menu_order'                => 38,
     5897                'menu_order'                => 41,
    58355898            ],
    58365899            [
     
    58965959                    ],
    58975960                ],
    5898                 'menu_order'         => 39,
     5961                'menu_order'         => 42,
    58995962            ],
    59005963            [
     
    59135976                'placement'         => 'top',
    59145977                'endpoint'          => 0,
    5915                 'menu_order'        => 40,
     5978                'menu_order'        => 43,
    59165979            ],
    59175980            [
     
    60336096                    ],
    60346097                ],
    6035                 'menu_order'         => 41,
     6098                'menu_order'         => 44,
    60366099            ],
    60376100            [
     
    60506113                'placement'         => 'top',
    60516114                'endpoint'          => 0,
    6052                 'menu_order'        => 42,
     6115                'menu_order'        => 45,
    60536116            ],
    60546117            [
     
    60716134                'ui_off_text'        => '',
    60726135                'lct_class_selector' => '',
    6073                 'menu_order'         => 43,
     6136                'menu_order'         => 46,
    60746137            ],
    60756138            [
     
    61006163                'maxlength'          => '',
    61016164                'lct_class_selector' => '',
    6102                 'menu_order'         => 44,
     6165                'menu_order'         => 47,
    61036166            ],
    61046167            [
     
    61296192                'maxlength'          => '',
    61306193                'lct_class_selector' => '',
    6131                 'menu_order'         => 45,
     6194                'menu_order'         => 48,
    61326195            ],
    61336196            [
     
    61646227                'lct_class_selector' => '',
    61656228                'placeholder'        => '',
    6166                 'menu_order'         => 46,
     6229                'menu_order'         => 49,
    61676230            ],
    61686231        ],
  • lct-useful-shortcodes-functions/trunk/lct-useful-shortcodes-functions.php

    r2263542 r2310439  
    22 * Plugin Name: LCT Useful Shortcodes & Functions
    33 * Plugin URI: http://lookclassy.com/wordpress-plugins/useful-shortcodes-functions/
    4  * Version: 2020.6
     4 * Version: 2020.7
    55 * Requires at least: 4.0
    66 * Tested up to: 5.3.2
  • lct-useful-shortcodes-functions/trunk/readme.txt

    r2263542 r2310439  
    22Contributors: ircary, pimg
    33Donate link: http://lookclassy.com/
    4 Stable tag: 2020.6
     4Stable tag: 2020.7
    55Requires at least: 4.0
    66Tested up to: 5.3.2
     
    2929
    3030== Changelog ==
     31= 2020.7 =
     32    - Avada v6.2.2 Ready
     33    - WP v5.4.1 Ready
     34    - WP Rocket v3.5.5.1 Ready
     35    - CSS Tweaks
     36    - Improved: PDER{}
     37    - Improved: send_ereminder()
     38    - Improved: delete_reminders_many()
     39    - Added: add_filter( 'wp_mail', [ $this, 'force_send_to_on_sb' ] );
     40    - Improved: lct_mu{}
     41    - Improved: lct_quick_send_email()
     42    - Improved: lct_get_rel_tax_id()
     43    - Added: lct_check_post_type_match()
     44    - Improved: lct_features_class_mail{}
     45    - Improved: lct_acf_form2()
     46    - Improved: lct_acf_format_value_user()
     47    - Improved: lct_acf_instant_save{}ajax_handler()
     48    - Improved: add_comment()
     49    - Improved: non_ajax_add_comment()
     50    - Updated: lct_cleanup_uploads()
     51    - Improved: cleanup_guid_link_cleanup()
     52    - ACF Field Updates; for LCT Audit Settings
     53    - Updated: avada_main_menu(); Added: do_action( 'lct/avada_main_menu' );
     54    - Added: lct_wp_mail_smtp_admin{}
     55    - Added: add_filter( 'wp_mail_smtp_options_get', [ $this, 'disable_smtp_on_dev' ], 10, 3 );
     56    - Updated: create_menu(); removed dashboard link
     57
    3158= 2020.6 =
    3259    - Avada v6.2.1 Ready
Note: See TracChangeset for help on using the changeset viewer.