Plugin Directory

Changeset 3129566


Ignore:
Timestamp:
08/01/2024 02:56:08 PM (19 months ago)
Author:
speedify
Message:

Releasing version 4.1.0

Location:
auto-install-free-ssl
Files:
276 added
12 edited

Legend:

Unmodified
Added
Removed
  • auto-install-free-ssl/trunk/FreeSSLAuto/src/Acme/Client.php

    r3096222 r3129566  
    9393        $data = json_decode( $body, true );
    9494        $result = ( null === $data ? $body : $data );
     95        if ( is_array( $result ) ) {
     96            $result['curlinfo_http_code'] = $this->lastCode;
     97        }
    9598        //Valid / expected status code
    9699        $expected_status_codes = [
  • auto-install-free-ssl/trunk/FreeSSLAuto/src/Acme/Factory.php

    r3096222 r3129566  
    3838
    3939    public $organization;
     40
     41    public $certificatesBase;
     42
     43    public $acme_version;
     44
     45    public $is_staging;
    4046
    4147    public function __construct( $certificatesBase, $acme_version, $is_staging ) {
  • auto-install-free-ssl/trunk/FreeSSLAuto/src/Admin/Factory.php

    r3096222 r3129566  
    12891289    }
    12901290
     1291    /**
     1292     * Check if the provided string is an IP address
     1293     * @param $domain
     1294     *
     1295     * @return bool
     1296     * @since 4.1.0
     1297     */
     1298    public function is_ip_address( $domain ) {
     1299        $domain = trim( $domain );
     1300        // Trim any whitespace from the input
     1301        if ( filter_var( $domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
     1302            return true;
     1303        } elseif ( filter_var( $domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {
     1304            return true;
     1305        }
     1306        return false;
     1307    }
     1308
     1309    /**
     1310     * Check if the provided string is a localhost
     1311     * @param $domain
     1312     *
     1313     * @return bool
     1314     * @since 4.1.0
     1315     */
     1316    public function is_localhost( $domain ) {
     1317        $domain = trim( $domain );
     1318        // Trim any whitespace from the input
     1319        $localhost = [
     1320            'localhost',
     1321            '127.0.0.1',
     1322            '::1',
     1323            '0000:0000:0000:0000:0000:0000:0000:0001',
     1324            '0:0:0:0:0:0:0:1'
     1325        ];
     1326        if ( in_array( $domain, $localhost ) ) {
     1327            return true;
     1328        }
     1329        if ( filter_var( $domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
     1330            // Check if the IP address starts with '127.'
     1331            if ( strpos( $domain, '127.' ) !== false && strpos( $domain, '127.' ) === 0 ) {
     1332                return true;
     1333            }
     1334        }
     1335        //@todo try to connect online -> but it won't work. Even localhost IP can be connected.
     1336        return false;
     1337    }
     1338
    12911339}
  • auto-install-free-ssl/trunk/FreeSSLAuto/src/Admin/GenerateSSLmanually.php

    r3096222 r3129566  
    166166
    167167            <?= aifs_header() ?>
     168
     169            <?php
     170            if(!$tos && !isset($this->return_array_step1['current_step_number']) && !isset( $_POST['aifs_challenge_type'] )) {
     171                //Step no. is 1
     172                $domain = aifs_get_domain( true );
     173
     174                $server_ip = aifs_ip_of_this_server();
     175                if ( ( $server_ip && $this->factory->is_localhost( $server_ip ) ) || $this->factory->is_localhost( $domain ) ) {
     176                    echo '<div class="aifs-ip-address">';
     177                    /* translators: %s: an IP address, e.g., 127.0.0.1 */
     178                    echo '<strong>' . sprintf( __( "Your WordPress website is hosted on a local server (localhost): %s", 'auto-install-free-ssl' ), $domain ) . '</strong>';
     179                    /* translators: "Let's Encrypt™" is a nonprofit SSL certificate authority. */
     180                    echo '<p>' . __( "Let's Encrypt™ does not issue SSL certificates for localhost. Let's Encrypt™ certificates are designed for public domain names, which need to be accessible over the internet for the validation process. Since localhost is not a publicly accessible domain but rather a hostname used for local development, it cannot be validated by Let's Encrypt™.", 'auto-install-free-ssl' ) . '</p>';
     181                    //echo '<p>' . __("You can create a self-signed certificate for local development environments, which secures your local connections without requiring validation from a Certificate Authority (CA).", 'auto-install-free-ssl') . '</p>';
     182                    //echo '<p>' . sprintf(__('%1$sNote:%2$s Browsers do not trust self-signed certificates by default, so you may need to add exceptions in your browser to avoid security warnings during local development.', 'auto-install-free-ssl'), '<strong>', '</strong>') . '</p>';
     183
     184                    echo '<div class="aifs-ip-address-inner">';
     185                    echo "After you complete developing the website in this local development environment, please do the following to secure your website:<br />";
     186                    echo "<ol>";
     187                    echo "<li>Use an existing web hosting server or purchase one, which should be publicly accessible online.</li>";
     188                    echo "<li>Use an existing domain name or purchase a domain name.</li>";
     189                    echo "<li>Associate the domain name with the IP address or nameservers of the web hosting server, i.e., set A record or NS records.</li>";
     190                    echo "<li>Migrate the website from this local development environment to the web hosting server using a Migration and Backup Plugin like 'Duplicator'.</li>";
     191                    echo "<li>If necessary, replace '" . $domain . "' with the domain name from all database tables using a plugin like 'Better Search Replace'.</li>";
     192                    echo "</ol>";
     193                    echo "<br /><strong>After you complete the above steps, please try generating an SSL certificate with this plugin.</strong>";
     194                    echo '</div>';
     195                    echo '</div>';
     196                } else if ( $this->factory->is_ip_address( $domain ) ) {
     197                    echo '<div class="aifs-ip-address">';
     198                    /* translators: %s: an IP address, e.g., 127.0.0.1 */
     199                    echo '<strong>' . sprintf( __( "Your WordPress website is hosted directly on the IP address: %s", 'auto-install-free-ssl' ), $domain ) . '</strong>';
     200                    /* translators: "Let's Encrypt™" is a nonprofit SSL certificate authority. */
     201                    echo '<p>' . __( "Let's Encrypt™ issues SSL certificates for domain names rather than bare IP addresses. Free SSL certificates are designed to secure domain names, providing encrypted connections between users and websites. Using SSL certificates with domain names is considered the industry's best practice.", 'auto-install-free-ssl' ) . '</p>';
     202                    //echo '<p>' . __("If you're looking to secure a website, it's recommended to associate a domain name with the IP address rather than using the bare IP address. This enhances the user experience and aligns with security and usability standards.", 'auto-install-free-ssl') . '</p>';
     203
     204                    echo '<div class="aifs-ip-address-inner">';
     205                    echo "Please do the following first to secure your website:<br />";
     206                    echo "<ol>";
     207                    echo "<li>Use an existing domain name or purchase a domain name.</li>";
     208                    echo "<li>Associate the domain name with this IP address, i.e., set A record.</li>";
     209                    echo "<li>Then open <a href='" . admin_url( 'options-general.php' ) . "' target='_blank'>General Settings</a>, update 'WordPress Address (URL)', & 'Site Address (URL)' with the domain name, and click the 'Save Changes' button.</li>";
     210                    echo "<li>Replace this IP address (" . $domain . ") with the domain name from all database tables using a plugin like 'Better Search Replace'.</li>";
     211                    echo "</ol>";
     212                    echo "<br /><strong>After you complete the above steps, please try generating an SSL certificate with this plugin.</strong>";
     213                    echo '</div>';
     214                    echo '</div>';
     215                }
     216            }
     217            ?>
    168218
    169219            <table style="width: 100%; margin-bottom: 2%;">
     
    793843                    'domain' => $domain,
    794844                    'serveralias' => 'www.'.$domain,
    795                     'documentroot' => $this->factory->document_root_wp()
     845                    'documentroot' => $this->factory->document_root_wp() //@todo 20 June 2024, this is creating issue. Check FreeSSLAuto.php what happens there.
    796846            ];
    797847
    798848            $controller = new Controller();
    799             //domains array
    800             $domains_array = $controller->domainsArray( $single_domain, $this->appConfig['domains_to_exclude'] );
     849            $domains_array_raw = $controller->domains_array_raw($single_domain);
     850            //domains array
     851            $domains_array = $controller->domainsArray( $domains_array_raw, $this->appConfig['domains_to_exclude'] );
    801852
    802853            /*if(!is_array($this->appConfig['admin_email'])){
     
    821872                    //$freessl->obtainSsl($domains_array, $single_domain['documentroot'], false, $this->appConfig['country_code'], $this->appConfig['state'], $this->appConfig['organization']);
    822873
    823                     $return_array_step1 = $freessl->step1GetAuthenticationTokens( $domains_array, $single_domain['documentroot'], false, $this->appConfig['country_code'], $this->appConfig['state'], $this->appConfig['organization'] );
     874                    $return_array_step1 = $freessl->step1GetAuthenticationTokens( $domains_array, $single_domain['documentroot'], false, $this->appConfig['country_code'], $this->appConfig['state'], $this->appConfig['organization'] );
     875
     876                    //20 June 2024 - delete after test
     877                    //$this->logger->log( '<pre>' . print_r( $return_array_step1, true ) . '</pre>' );
     878
     879                    $expected_status_codes = [200, 201, 202, 204];
     880
     881                    if (!in_array($return_array_step1['response']['curlinfo_http_code'], $expected_status_codes, true)) {
     882                        $error_text = "<span style='color: red;'>";
     883                        $error_text .= "Oops! Let's Encrypt™ server returned an error; it is given below.";
     884                        $error_text .= "</span>";
     885                        $error_text .=  " <span style='font-weight: bold;'>". __( "Please check the log for details information.", 'auto-install-free-ssl' ) ."</span> ";
     886
     887                        /* translators: %1$s: Opening HTML 'a' tag; %2$s: Closing 'a' tag (Opening and closing 'a' tags create a hyperlink with the enclosed text.) */
     888                        $error_text .= sprintf( __( 'Please try again after some time and %1$sclick here%2$s if you need help.', 'auto-install-free-ssl' ), '<a href="https://freessl.tech/free-ssl-certificate-for-wordpress-website/#help" target="_blank">', '</a>' ) . "<br />";
     889
     890                        $error_text .= '<pre>'. print_r($return_array_step1, true) .'</pre>';
     891
     892                        aifs_add_flash_notice($error_text, "error");
     893                        $redirect_url = admin_url('admin.php?page=aifs_generate_ssl_manually');
     894                        wp_redirect($redirect_url);
     895                        exit;
     896                    }
     897
    824898                    $return_array_step1['domains_array'] = $domains_array;
    825899                    $return_array_step1['current_step_number'] = 2;
    826 
    827                     /*if ( ! get_option( 'aifs_return_array_step1_manually' ) ) {
    828                         add_option( 'aifs_return_array_step1_manually', $return_array_step1 );
    829                     } else {*/
    830900                    update_option( 'aifs_return_array_step1_manually', $return_array_step1 );
    831                     /*}*/
    832901                    $this->return_array_step1 = $return_array_step1;
    833902
  • auto-install-free-ssl/trunk/FreeSSLAuto/src/Admin/HomeOptions.php

    r3096222 r3129566  
    873873        $contact_link = aifssl_fs()->contact_url();
    874874        echo '<h1 style="text-align: center;">' . $heading . '</h1>';
    875         echo '<br /><h3 style="color: #076507; text-align: center;">' . __( "Now, please deactivate this FREE version. Then download, install & activate the premium version and enjoy!", 'auto-install-free-ssl' ) . '</h3>';
     875        //echo '<br /><h3 style="color: #076507; text-align: center;">' . __( "Now, please deactivate this FREE version. Then download, install & activate the premium version and enjoy!", 'auto-install-free-ssl' ) . '</h3>';
     876        echo '<br /><h2 style="color: #076507; text-align: center;">Now, please download the premium version and deactivate this FREE version.</h2>';
     877        echo '<h3 style="color: #076507; text-align: center;">Then install & activate the premium version and do the one-time setup!</h3>';
    876878        echo '<div style="text-align: left; margin-top: 3%; margin-left: 18%;">';
    877879        echo '<p>' . __( "If you missed downloading the Pro version of this plugin, you could download it using any of the following options", 'auto-install-free-ssl' ) . ':</p>';
     
    887889        /* translators: %s: HTML code to create a hyperlink with the text 'Contact Us'. */
    888890        echo '<p style="text-align: center;">' . sprintf( __( "Any issues? %sContact Us%s right away. We'll be happy to help you.", 'auto-install-free-ssl' ), '<a href="' . $contact_link . '">', '</a>' ) . '</p>';
     891        echo '<br /><hr /><hr /><h1 style="color: #076507; text-align: center; font-weight: bold;">Troubleshooting</h1>';
     892        echo '<div style="text-align: left; margin-top: 3%; margin-left: 18%;">';
     893        echo '<p>When activating the premium plugin (Pro version), you might encounter errors such as:</p>';
     894        echo '<p><code>Plugin could not be activated because it triggered a <strong>fatal error</strong>.</code></pre>';
     895        echo '<p>Or:</p>';
     896        echo '<p><code><strong>Fatal error:</strong> Cannot redeclare aifs_home_menu() (previously declared in /home/username/public_html/wp-content/plugins/auto-install-free-ssl/auto-install-free-ssl.php:151) in /home/username/public_html/wp-content/plugins/auto-install-free-ssl-premium/auto-install-free-ssl.php on line 153</code></p>';
     897        echo '<h3 style="color: #076507; text-align: left;">Solution</h3>';
     898        echo '<p>Fixing this issue is straightforward. Please follow these steps:</p>';
     899        echo '<ul style="margin-left: 2%;">';
     900        echo '<li>A. <strong>Deactivate the free plugin:</strong>';
     901        echo '<ol>';
     902        echo '<li>Navigate to your WordPress dashboard.</li>';
     903        echo '<li>Go to Plugins > Installed Plugins.</li>';
     904        echo '<li>Find the \'Auto-Install Free SSL\' plugin and click <strong>Deactivate</strong>.</li>';
     905        echo '</ol></li><br />';
     906        echo '<li>B. <strong>Activate the premium plugin:</strong>';
     907        echo '<ol>';
     908        echo '<li>In the same \'Installed Plugins\' section, find the \'Auto-Install Free SSL (Premium)\' plugin and click <strong>Activate</strong>.</li>';
     909        echo '</ol></li>';
     910        echo '</ul>';
     911        echo '<p>Following these steps should resolve the error, allowing you to activate and use the premium plugin without any issues.</p><br />';
     912        echo '</div>';
    889913        ?>
    890914                </td>
  • auto-install-free-ssl/trunk/assets/css/aifs-admin.css

    r3096222 r3129566  
    727727    color: green;
    728728}
     729
     730/* If domain is IP address */
     731.aifs-ip-address {
     732    width: 100%;
     733    background: #ff0000;
     734    color: white;
     735    font-size: medium;
     736    padding: 25px 30px;
     737    box-sizing: border-box;
     738    border-radius: 6px;
     739    margin-bottom: 3%;
     740}
     741
     742.aifs-ip-address p {
     743    font-size: 0.9em;
     744    background: white;
     745    color: black;
     746    padding: 5px 7px;
     747}
     748
     749.aifs-ip-address-inner{
     750    font-size: 0.9em;
     751    background: white;
     752    color: black;
     753    padding: 5px 7px;
     754    margin-left: 20px;
     755}
  • auto-install-free-ssl/trunk/auto-install-free-ssl.php

    r3096222 r3129566  
    77 * Plugin URI:  https://freessl.tech
    88 * Description: Generate & install Free SSL Certificates, activate force HTTPS redirect with one click to fix insecure links & mixed content warnings, and get automatic Renewal Reminders.
    9  * Version:     4.0.0
     9 * Version:     4.1.0
    1010 * Requires at least: 4.1
    1111 * Requires PHP:      5.6
     
    505505
    506506/**
    507  * Get IPv4 of this server
    508  * improved since 3.6.4
     507 * Get IPv4 or IPv6 of this server
     508 * improved since 4.1.0
    509509 * @return mixed|string
    510510 * @since 3.6.0
    511511 */
    512512function aifs_ip_of_this_server() {
     513    $serverIP = false;
    513514    if ( isset( $_SERVER['SERVER_ADDR'] ) ) {
    514515        $serverIP = $_SERVER['SERVER_ADDR'];
     
    522523            $serverIP = $ip;
    523524        } else {
    524             // Fallback to dns_get_record if gethostbyname didn't return a valid IP
    525             $records = dns_get_record( $websiteAddress, DNS_A );
    526             $serverIP = ( isset( $records[0]['ip'] ) ? $records[0]['ip'] : '' );
     525            if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {
     526                $serverIP = $ip;
     527            } else {
     528                // Fallback to dns_get_record if gethostbyname didn't return a valid IP
     529                $records = dns_get_record( $websiteAddress, DNS_A );
     530                $serverIP = ( isset( $records[0]['ip'] ) ? $records[0]['ip'] : '' );
     531            }
    527532        }
    528533    }
    529     if ( $serverIP && filter_var( $serverIP, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ) {
     534    if ( $serverIP && (filter_var( $serverIP, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) || filter_var( $serverIP, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 )) ) {
    530535        return $serverIP;
    531536    } else {
  • auto-install-free-ssl/trunk/freemius/assets/css/admin/dialog-boxes.css

    r3096222 r3129566  
    1 .fs-modal{background:rgba(0,0,0,.6);display:none;height:100%;overflow:auto;position:fixed;top:0;width:100%;z-index:100000}@media(min-width:961px){.fs-modal{padding-left:160px}.rtl .fs-modal{padding-left:0;padding-right:160px}}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;left:50%;margin-left:-298px;padding-bottom:30px;position:absolute;top:-100%;width:596px;z-index:100001}@media(max-width:650px){.fs-modal .fs-modal-dialog{box-sizing:border-box;margin-left:-50%;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active,.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{background:#fefefe;border:0;padding:20px}.fs-modal .fs-modal-header{background:#fbfbfb;border-bottom:1px solid #eee;margin-bottom:-10px;padding:15px 20px;position:relative}.fs-modal .fs-modal-header h4{color:#cacaca;font-size:1.2em;font-weight:700;letter-spacing:.6px;margin:0;padding:0;text-shadow:1px 1px 1px #fff;text-transform:uppercase;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{border-radius:20px;color:#bbb;cursor:pointer;padding:3px;position:absolute;right:10px;top:12px;transition:all .2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{background:#aaa;color:#fff}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-size:20px;font-weight:700;margin-top:0}.fs-modal .fs-modal-footer{border-top:1px solid #eee;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:last-of-type{margin:0}.fs-modal .fs-modal-panel>.notice.inline{display:none;margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{left:20px;right:auto}.rtl .fs-modal .fs-modal-footer{text-align:left}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .internal-message,.fs-modal.fs-modal-deactivation-feedback .reason-input{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea,.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;display:none;padding:7px}@media(max-width:650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:left;line-height:30px}.rtl .fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.rtl .fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:right}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0!important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{line-height:1.5em;margin-top:0}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:700;margin-bottom:0;padding:0 25px}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;position:relative;top:5px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-license-options-container table,.fs-license-options-container table .fs-available-license-key,.fs-license-options-container table select,.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{float:left;margin-right:5px;position:relative;top:6px}.fs-license-options-container table .fs-other-license-key-container div{display:block;height:30px;overflow:hidden;position:relative;top:2px;width:auto}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{border-collapse:collapse;width:100%}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type=radio]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{padding-left:3px;padding-right:3px;width:1%}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key,.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-multisite-options-container{border:1px solid #ccc;margin-top:20px;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:700}.fs-multisite-options-container.fs-apply-on-all-sites{border:0;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media(max-width:650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-left:0;margin-right:7px}a.show-license-resend-modal{display:inline-block;margin-top:4px}.fs-modal.fs-modal-email-address-update .fs-modal-body input[type=text]{width:100%}.fs-modal.fs-modal-email-address-update p{margin-bottom:0}.fs-modal.fs-modal-email-address-update ul{margin:1em .5em}.fs-modal.fs-modal-email-address-update ul li label span{float:left;margin-top:0}.fs-modal.fs-modal-email-address-update ul li label span:last-child{display:block;float:none;margin-left:20px}.fs-ajax-loader{height:20px;margin:auto;position:relative;width:170px}.fs-ajax-loader .fs-ajax-loader-bar{animation-direction:normal;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-name:bounce_ajaxLoader;background-color:#0074a3;height:20px;position:absolute;top:0;transform:.3;width:20px}.fs-ajax-loader .fs-ajax-loader-bar-1{animation-delay:.6s;-o-animation-delay:.6s;-ms-animation-delay:.6s;-webkit-animation-delay:.6s;-moz-animation-delay:.6s;left:0}.fs-ajax-loader .fs-ajax-loader-bar-2{animation-delay:.75s;-o-animation-delay:.75s;-ms-animation-delay:.75s;-webkit-animation-delay:.75s;-moz-animation-delay:.75s;left:19px}.fs-ajax-loader .fs-ajax-loader-bar-3{animation-delay:.9s;-o-animation-delay:.9s;-ms-animation-delay:.9s;-webkit-animation-delay:.9s;-moz-animation-delay:.9s;left:38px}.fs-ajax-loader .fs-ajax-loader-bar-4{animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s;left:57px}.fs-ajax-loader .fs-ajax-loader-bar-5{animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;left:76px}.fs-ajax-loader .fs-ajax-loader-bar-6{animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s;left:95px}.fs-ajax-loader .fs-ajax-loader-bar-7{animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s;left:114px}.fs-ajax-loader .fs-ajax-loader-bar-8{animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s;left:133px}@keyframes bounce_ajaxLoader{0%{background-color:#0074a3;transform:scale(1)}to{background-color:#fff;transform:scale(.3)}}.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons,.fs-modal-auto-install #request-filesystem-credentials-form h2{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;max-width:100%;padding:10px 10px 5px;width:300px}.fs-modal-auto-install #request-filesystem-credentials-form fieldset,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form>div{display:block;margin:0 auto;max-width:100%;width:300px}.button-primary.warn{background:#f56a48;border-color:#ec6544 #d2593c #d2593c;box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{background:#e76444!important;border-color:#d85e40!important;color:#f5b3a1!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}
     1.fs-modal{background:rgba(0,0,0,.6);display:none;height:100%;overflow:auto;position:fixed;top:0;width:100%;z-index:100000}@media(min-width:961px){.fs-modal{padding-left:160px}.rtl .fs-modal{padding-left:0;padding-right:160px}}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;left:50%;margin-left:-298px;padding-bottom:30px;position:absolute;top:-100%;width:596px;z-index:100001}@media(max-width:650px){.fs-modal .fs-modal-dialog{box-sizing:border-box;margin-left:-50%;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active,.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{background:#fefefe;border:0;padding:20px}.fs-modal .fs-modal-header{background:#fbfbfb;border-bottom:1px solid #eee;margin-bottom:-10px;padding:15px 20px;position:relative}.fs-modal .fs-modal-header h4{color:#cacaca;font-size:1.2em;font-weight:700;letter-spacing:.6px;margin:0;padding:0;text-shadow:1px 1px 1px #fff;text-transform:uppercase;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{border-radius:20px;color:#bbb;cursor:pointer;padding:3px;position:absolute;right:10px;top:12px;transition:all .2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{background:#aaa;color:#fff}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-size:20px;font-weight:700;margin-top:0}.fs-modal .fs-modal-footer{border-top:1px solid #eee;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:last-of-type{margin:0}.fs-modal .fs-modal-panel>.notice.inline{display:none;margin:0}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{left:20px;right:auto}.rtl .fs-modal .fs-modal-footer{text-align:left}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .internal-message,.fs-modal.fs-modal-deactivation-feedback .reason-input{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea,.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;display:none;padding:7px}@media(max-width:650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:left;line-height:30px}.rtl .fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label,.rtl .fs-modal.fs-modal-deactivation-feedback .feedback-from-snooze-label{float:right}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0!important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{font-size:16px;line-height:1.5em;margin-bottom:0;margin-top:10px}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:700;margin-bottom:0;padding:0 25px}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;position:relative;top:5px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-license-options-container table,.fs-license-options-container table .fs-available-license-key,.fs-license-options-container table select,.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{float:left;margin-right:5px;position:relative;top:6px}.fs-license-options-container table .fs-other-license-key-container div{display:block;height:30px;overflow:hidden;position:relative;top:2px;width:auto}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{border-collapse:collapse;width:100%}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type=radio]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{padding-left:3px;padding-right:3px;width:1%}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key,.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-multisite-options-container{border:1px solid #ccc;margin-top:20px;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:700}.fs-multisite-options-container.fs-apply-on-all-sites{border:0;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media(max-width:650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-left:0;margin-right:7px}a.show-license-resend-modal{display:inline-block;margin-top:4px}.fs-modal.fs-modal-email-address-update .fs-modal-body input[type=text]{width:100%}.fs-modal.fs-modal-email-address-update p{margin-bottom:0}.fs-modal.fs-modal-email-address-update ul{margin:1em .5em}.fs-modal.fs-modal-email-address-update ul li label span{float:left;margin-top:0}.fs-modal.fs-modal-email-address-update ul li label span:last-child{display:block;float:none;margin-left:20px}.fs-ajax-loader{height:20px;margin:auto;position:relative;width:170px}.fs-ajax-loader .fs-ajax-loader-bar{animation-direction:normal;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;animation-name:bounce_ajaxLoader;background-color:#0074a3;height:20px;position:absolute;top:0;transform:.3;width:20px}.fs-ajax-loader .fs-ajax-loader-bar-1{animation-delay:.6s;-o-animation-delay:.6s;-ms-animation-delay:.6s;-webkit-animation-delay:.6s;-moz-animation-delay:.6s;left:0}.fs-ajax-loader .fs-ajax-loader-bar-2{animation-delay:.75s;-o-animation-delay:.75s;-ms-animation-delay:.75s;-webkit-animation-delay:.75s;-moz-animation-delay:.75s;left:19px}.fs-ajax-loader .fs-ajax-loader-bar-3{animation-delay:.9s;-o-animation-delay:.9s;-ms-animation-delay:.9s;-webkit-animation-delay:.9s;-moz-animation-delay:.9s;left:38px}.fs-ajax-loader .fs-ajax-loader-bar-4{animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s;left:57px}.fs-ajax-loader .fs-ajax-loader-bar-5{animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s;left:76px}.fs-ajax-loader .fs-ajax-loader-bar-6{animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s;left:95px}.fs-ajax-loader .fs-ajax-loader-bar-7{animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s;left:114px}.fs-ajax-loader .fs-ajax-loader-bar-8{animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s;left:133px}@keyframes bounce_ajaxLoader{0%{background-color:#0074a3;transform:scale(1)}to{background-color:#fff;transform:scale(.3)}}.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons,.fs-modal-auto-install #request-filesystem-credentials-form h2{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;max-width:100%;padding:10px 10px 5px;width:300px}.fs-modal-auto-install #request-filesystem-credentials-form fieldset,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form>div{display:block;margin:0 auto;max-width:100%;width:300px}.button-primary.warn{background:#f56a48;border-color:#ec6544 #d2593c #d2593c;box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{background:#e76444!important;border-color:#d85e40!important;color:#f5b3a1!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important}
  • auto-install-free-ssl/trunk/freemius/includes/class-freemius.php

    r3096222 r3129566  
    41754175                isset( $this->_storage->connectivity_test['is_active'] )
    41764176            ) {
    4177                 $is_active = $this->_storage->connectivity_test['is_active'];
     4177                $is_connected = isset( $this->_storage->connectivity_test['is_connected'] ) ?
     4178                    $this->_storage->connectivity_test['is_connected'] :
     4179                    null;
     4180                $is_active    = ( $this->_storage->connectivity_test['is_active'] || is_object( $this->_site ) );
    41784181            } else {
    4179                 $is_active = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) );
    4180 
    4181                 $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), null );
    4182             }
     4182                $is_connected = null;
     4183                $is_active    = $this->should_turn_fs_on( $this->apply_filters( 'is_plugin_update', $this->is_plugin_update() ) );
     4184            }
     4185
     4186            $this->store_connectivity_info( (object) array( 'is_active' => $is_active ), $is_connected );
    41834187
    41844188            if ( $is_active ) {
     
    54855489                'bundle_id'            => $this->get_option( $plugin_info, 'bundle_id', null ),
    54865490                'bundle_public_key'    => $this->get_option( $plugin_info, 'bundle_public_key', null ),
    5487                 'opt_in_moderation'    => $this->get_option( $plugin_info, 'opt_in', null ),
     5491                'opt_in_moderation'    => $this->get_option(
     5492                    $plugin_info,
     5493                    'opt_in',
     5494                    // For backward compatibility, we support both parameter names: opt_in and opt_in_moderation.
     5495                    $this->get_option( $plugin_info, 'opt_in_moderation', null )
     5496                ),
    54885497            ) );
    54895498
  • auto-install-free-ssl/trunk/freemius/start.php

    r3096222 r3129566  
    1616     * @var string
    1717     */
    18     $this_sdk_version = '2.7.2';
     18    $this_sdk_version = '2.7.3';
    1919
    2020    #region SDK Selection Logic --------------------------------------------------------------------
  • auto-install-free-ssl/trunk/freemius/templates/connect.php

    r2934344 r3129566  
    162162                fs_require_once_template( 'plugin-icon.php', $vars );
    163163            ?>
    164             <!--            <img class="fs-connect-logo" width="--><?php //echo $size ?><!--" height="--><?php //echo $size ?><!--" src="//img.freemius.com/logo/connect.svg"/>-->
    165164        </div>
    166165        <div class="fs-box-container">
  • auto-install-free-ssl/trunk/readme.txt

    r3096222 r3129566  
    55Tags: free ssl, ssl certificate, https redirect, free ssl certificate, ssl security
    66Requires at least: 4.1
    7 Tested up to: 6.5
    8 Stable tag: 4.0.0
     7Tested up to: 6.6
     8Stable tag: 4.1.0
    99Requires PHP: 5.6
    1010
     
    2525
    2626
    27 `    414,500+ DOWNLOADS!!`
     27`    425,500+ DOWNLOADS!!`
    2828
    2929
     
    396396
    397397== Changelog ==
     398= 4.1.0 =
     399* Fixed an issue with the documentroot being passed with the domain and ServerAlias in Step 1 of generating a free SSL certificate.
     400* Improved error handling in Step 1 of generating a free HTTPS certificate.
     401* [Pro] Fixed an issue for non-cPanel websites: SSL certificate file path was not loaded correctly during the first time free ssl security certificate generation.
     402* Improved the function aifs_ip_of_this_server() to support IPv6.
     403* Added functions to detect if the WordPress website is hosted on localhost or a bare IP address. Displays information and recommendations in the WordPress dashboard, as Let's Encrypt™ does not issue free HTTPS SSL certificates for localhost and bare IP addresses.
     404* Updated the Freemius WordPress SDK to version 2.7.3.
     405
    398406= 4.0.0 =
    399407* Improved the Generate SSL page.
Note: See TracChangeset for help on using the changeset viewer.