JezK
Edit File: functions.php
<?php defined( 'ABSPATH' ) or die(); /** * Create a generic read more text with link for help texts. * * @param string $url * @param bool $add_space * * @return string */ function rsssl_le_read_more( $url, $add_character = ' ' ) { $html = sprintf( __( "For more information, please read this %sarticle%s", 'really-simple-ssl' ), '<a target="_blank" rel="noopener noreferrer" href="' . $url . '">', '</a>' ); if ( is_string($add_character) ) { $html = $add_character . $html; } return $html; } /** * Check if we need to use DNS verification * @return bool */ function rsssl_dns_verification_required(){ if ( get_option('rsssl_manually_changed_verification_type') ) { return rsssl_get_option( 'verification_type' ) === 'dns'; } /** * If our current hosting provider does not allow or require local SSL certificate generation, * We do not need to DNS verification either. */ if ( !rsssl_do_local_lets_encrypt_generation() ) { return false; } if ( rsssl_get_option('verification_type')==='dns' ) { return true; } if ( rsssl_wildcard_certificate_required() ) { //if the user hasn't manually forced the verification type to anything else, we set it to dns now. //otherwise we get a difference between this requirement, and the actual verification type that could be 'dir' if ( !get_option('rsssl_manually_changed_verification_type') && rsssl_get_option('verification_type')!=='dns' ) { rsssl_update_option('verification_type', 'dns'); } return true; } return false; } if ( !function_exists('rsssl_is_cpanel')) { /** * Check if we're on CPanel * * @return bool */ function rsssl_is_cpanel() { $open_basedir = ini_get("open_basedir"); if ( empty($open_basedir) && file_exists( "/usr/local/cpanel" ) ) { return true; } else if (rsssl_check_port(2082)) { return true; } else { return false; } } } if (!function_exists('rsssl_cpanel_api_supported')) { /** * Check if CPanel supports the api * * @return bool */ function rsssl_cpanel_api_supported() { if ( rsssl_is_cpanel() ) { return true; } return !rsssl_openbasedir_restriction("/usr/local/cpanel/php/cpanel.php") && file_exists( "/usr/local/cpanel/php/cpanel.php" ); } } if (!function_exists('rsssl_activated_by_default')) { /** * Check if the host has ssl, activated by default * * @return bool */ function rsssl_activated_by_default() { $activated_by_default = false; $activated_by_default_hosts = RSSSL_LE()->hosts->activated_by_default; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $activated_by_default_hosts ) ) { $activated_by_default = true; } return $activated_by_default; } } if ( !function_exists('rsssl_openbasedir_restriction')) { function rsssl_openbasedir_restriction( string $path): bool { // Default error handler is required set_error_handler(null); // Clean last error info. error_clear_last(); // Testing... @file_exists($path); // Restore previous error handler restore_error_handler(); // Return `true` if error has occurred return ($error = error_get_last()) && $error['message'] !== '__clean_error_info'; } } if (!function_exists('rsssl_activation_required')) { /** * Check if the host has ssl, activation required * * @return bool */ function rsssl_activation_required() { $dashboard_activation_required = false; $dashboard_activation_required_hosts = RSSSL_LE()->hosts->dashboard_activation_required; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $dashboard_activation_required_hosts ) ) { $dashboard_activation_required = true; } return $dashboard_activation_required; } } if (!function_exists('rsssl_paid_only')) { /** * Check if the host has ssl, paid only * * @return bool */ function rsssl_paid_only() { $paid_only = false; $paid_only_hosts = RSSSL_LE()->hosts->paid_only; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $paid_only_hosts ) ) { $paid_only = true; } return $paid_only; } } if ( !function_exists('rsssl_is_plesk')) { /** * https://stackoverflow.com/questions/26927248/how-to-detect-servers-control-panel-type-with-php * @return false */ function rsssl_is_plesk() { if ( get_option('rsssl_hosting_dashboard')==='plesk' ){ return true; } //cpanel takes precedence, as it's more precise if ( rsssl_is_cpanel() ) { return false; } $open_basedir = ini_get("open_basedir"); if ( empty($open_basedir) && is_dir( '/usr/local/psa' ) ) { return true; } else if (rsssl_check_port(8443)) { return true; } else { return false; } } } if ( !function_exists('rsssl_is_directadmin')) { /** * https://stackoverflow.com/questions/26927248/how-to-detect-servers-control-panel-type-with-php * @return bool */ function rsssl_is_directadmin() { if ( get_option('rsssl_hosting_dashboard')==='directadmin' ){ return true; } //cpanel takes precedence, as it's more precise if ( rsssl_is_cpanel() ) { return false; } if ( rsssl_is_plesk() ) { return false; } if (rsssl_check_port(2222)) { return true; } else { return false; } } } /** * @param int $port * * @return bool */ function rsssl_check_port( $port) { $port_check_status = get_option("rsssl_port_check_$port"); if ( !function_exists('fsockopen') || $port_check_status === 'fail' ) { return false; } $ipAddress = gethostbyname('localhost'); $link = @fsockopen( $ipAddress, $port, $errno, $error, 5 ); if ( $link ) { update_option("rsssl_port_check_$port", 'success', false); return true; } update_option("rsssl_port_check_$port", 'fail', false); return false; } if ( !function_exists('rsssl_get_other_host') ) { /** * Get the selected hosting provider, if any. * @return bool|string */ function rsssl_get_other_host() { return rsssl_get_option( 'other_host_type', false ); } } /** * Add some information to the javascript * @param array $args * * @return array */ function rsssl_le_localize_script($args){ $hosting_dashboard = 'other'; if ( rsssl_is_cpanel() ) $hosting_dashboard = 'cpanel'; if ( rsssl_is_directadmin() ) $hosting_dashboard = 'directadmin'; if ( rsssl_is_plesk() ) $hosting_dashboard = 'plesk'; $args['hosting_dashboard'] = $hosting_dashboard; return $args; } add_filter("rsssl_localize_script", 'rsssl_le_localize_script', 10, 3); if ( !function_exists('rsssl_progress_add')) { /** * @param string $item */ function rsssl_progress_add( $item ) { $progress = get_option( "rsssl_le_installation_progress", array() ); if ( ! in_array( $item, $progress ) ) { $progress[] = $item; update_option( "rsssl_le_installation_progress", $progress, false ); } } } if ( !function_exists('rsssl_uses_known_dashboard')) { /** * Check if website uses any of the known dashboards. */ function rsssl_uses_known_dashboard( ) { if ( rsssl_is_cpanel() || rsssl_is_plesk() || rsssl_is_directadmin() ) { return true; } else { return false; } } } if ( !function_exists('rsssl_is_ready_for')) { /** * @param string $item */ function rsssl_is_ready_for( $item ) { if ( !rsssl_do_local_lets_encrypt_generation() ) { rsssl_progress_add('directories'); rsssl_progress_add('generation'); rsssl_progress_add('dns-verification'); } if ( !rsssl_dns_verification_required() ) { rsssl_progress_add('dns-verification'); } if (empty(rsssl_get_not_completed_steps($item))){ return true; } else{ return false; } } } function rsssl_get_not_completed_steps($item){ $sequence = array_column( rsssl_le_steps(), 'id'); //drop first array_shift($sequence); //drop all statuses after $item. We only need to know if all previous ones have been completed $index = array_search($item, $sequence); $sequence = array_slice($sequence, 0, $index, true); $not_completed = array(); $finished = get_option("rsssl_le_installation_progress", array()); foreach ($sequence as $status ) { if (!in_array($status, $finished)) { $not_completed[] = $status; } } return $not_completed; } if ( !function_exists('rsssl_progress_remove')) { /** * @param string $item */ function rsssl_progress_remove( $item ) { $progress = get_option( "rsssl_le_installation_progress", array() ); if ( in_array( $item, $progress ) ) { $index = array_search( $item, $progress ); unset( $progress[ $index ] ); update_option( "rsssl_le_installation_progress", $progress, false ); } } } if ( !function_exists('rsssl_do_local_lets_encrypt_generation')) { /** * Check if the setup requires local certificate generation * @return bool */ function rsssl_do_local_lets_encrypt_generation() { $not_local_cert_hosts = RSSSL_LE()->hosts->not_local_certificate_hosts; $current_host = rsssl_get_other_host(); if ( in_array( $current_host, $not_local_cert_hosts ) ) { return false; } return true; } } if ( !function_exists('rsssl_get_manual_instructions_text')) { /** * Manual installation instructions * * @param string $url * * @return string */ function rsssl_get_manual_instructions_text( $url ) { $default_url = rsssl_link('install-ssl-certificate'); $dashboard_activation_required = rsssl_activation_required(); $activated_by_default = rsssl_activated_by_default(); $paid_only = rsssl_paid_only(); $button_activate = '<br><a href="' . $default_url . '" target="_blank" rel="noopener noreferrer" class="button button-primary">' . __( "Instructions", "really-simple-ssl" ) . '</a> '; $button_complete = '<br><a href="' . $default_url . '" target="_blank" rel="noopener noreferrer" class="button button-primary">' . __( "Instructions", "really-simple-ssl" ) . '</a> '; if ( $url === $default_url ) { $complete_manually = sprintf( __( "Please complete manually in your hosting dashboard.", "really-simple-ssl" ), '<a target="_blank" href="' . $url . '">', '</a>' ); $activate_manually = sprintf( __( "Please activate it manually on your hosting dashboard.", "really-simple-ssl" ), '<a target="_blank" href="' . $url . '">', '</a>' ); } else { $complete_manually = sprintf( __( "Please complete %smanually%s", "really-simple-ssl" ), '<a target="_blank" rel="noopener noreferrer" href="' . $url . '">', '</a>' ); $activate_manually = sprintf( __( "Please activate it on your dashboard %smanually%s", "really-simple-ssl" ), '<a target="_blank" rel="noopener noreferrer" href="' . $url . '">', '</a>' ); $button_activate .= '<a href="' . $url . '" target="_blank" rel="noopener noreferrer" class="button button-primary">' . __( "Go to activation", "really-simple-ssl" ) . '</a>'; $button_complete .= '<a href="' . $url . '" target="_blank" rel="noopener noreferrer" class="button button-primary">' . __( "Go to installation", "really-simple-ssl" ) . '</a>'; } if ( $activated_by_default ) { $msg = sprintf( __( "According to our information, your hosting provider supplies your account with an SSL certificate by default. Please contact your %shosting support%s if this is not the case.", "really-simple-ssl" ), '<a target="_blank "rel="noopener noreferrer" href="' . $url . '">', '</a>' ) . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ); } else if ( $dashboard_activation_required ) { $msg = __( "You already have free SSL on your hosting environment.", "really-simple-ssl" ) . ' ' . $activate_manually . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ) . $button_activate; } else if ( $paid_only ) { $msg = sprintf( __( "According to our information, your hosting provider does not allow any kind of SSL installation, other than their own paid certificate. For an alternative hosting provider with SSL, see this %sarticle%s.", "really-simple-ssl" ), '<a target="_blank" rel="noopener noreferrer" href='.rsssl_link("hosting-providers-with-free-ssl").'>', '</a>' ); } else { $msg = __( "Your hosting environment does not allow automatic SSL installation.", "really-simple-ssl" ) . ' ' . $complete_manually . ' ' . sprintf( __( "You can follow these %sinstructions%s.", "really-simple-ssl" ), '<a target="_blank" rel="noopener noreferrer" href="' . $default_url . '">', '</a>' ) . ' ' . __( "After completing the installation, you can continue to the next step to complete your configuration.", "really-simple-ssl" ) . $button_complete; } return $msg; } } register_activation_hook( __FILE__, 'rsssl_set_activation_time_stamp' ); if ( ! function_exists( 'rsssl_set_activation_time_stamp' ) ) { function rsssl_set_activation_time_stamp( $networkwide ) { update_option( 'rsssl_activation_time', time(), false ); } } if ( ! function_exists( 'rsssl_array_filter_multidimensional' ) ) { function rsssl_array_filter_multidimensional( $array, $filter_key, $filter_value ) { $new = array_filter( $array, function ( $var ) use ( $filter_value, $filter_key ) { return isset( $var[ $filter_key ] ) ? ( $var[ $filter_key ] == $filter_value ) : false; } ); return $new; } } if ( !function_exists('rsssl_is_subdomain') ) { /** * Check if we're on a subdomain. * If this is a www domain, we return false */ function rsssl_is_subdomain(){ $domain = rsssl_get_domain(); if ( strpos($domain, 'www.') !== false ) return false; $root = rsssl_get_root_domain($domain); if ($root === $domain ) { return false; } else { return true; } } } if ( !function_exists('rsssl_get_root_domain') ) { /** * Get root domain of a domain */ function rsssl_get_root_domain($domain){ $sub = strtolower(trim($domain)); $count = substr_count($sub, '.'); if($count === 2){ if(strlen(explode('.', $sub)[1]) > 3) $sub = explode('.', $sub, 2)[1]; } else if($count > 2){ $sub = rsssl_get_root_domain(explode('.', $sub, 2)[1]); } return $sub; } } if ( ! function_exists( 'rsssl_get_domain' ) ) { /** * Get current domain * * @return string */ function rsssl_get_domain() { //Get current domain $domain = site_url(); //Parse to strip off any /subfolder/ $parse = parse_url($domain); $domain = $parse['host']; $domain = str_replace(array('http://', 'https://' ), '', $domain); return $domain; } } if ( !function_exists('rsssl_wildcard_certificate_required') ) { /** * Check if the site requires a wildcard * * @return bool */ function rsssl_wildcard_certificate_required() { //if DNS verification, create wildcard. if ( rsssl_get_option('verification_type') === 'dns' ) { return true; } if ( ! is_multisite() ) { return false; } else { if ( defined( 'SUBDOMAIN_INSTALL' ) && SUBDOMAIN_INSTALL ) { return true; } else { return false; } } } } if ( !function_exists('rsssl_can_install_shell_addon') ) { /** * check if this environment has shell capability * * @return bool */ function rsssl_can_install_shell_addon(){ //if not cpanel if ( !rsssl_is_cpanel() ) { return false; } //if already installed if (defined('rsssl_shell_path')){ return false; } if ( function_exists('shell_exec') || function_exists('system') || function_exists('passthru') || function_exists('exec') ) { return true; } else { return false; } } } if ( !function_exists('rsssl_generated_by_rsssl')) { /** * If a bundle generation is completed, this value is set to true. * * @return bool */ function rsssl_generated_by_rsssl() { return get_option( 'rsssl_le_certificate_generated_by_rsssl' ); } } /** * Checks if a CAA DNS record is preventing the use of Let's Encrypt for the current site. * * @return bool Returns true if a CAA DNS record exists and does not allow Let's Encrypt, false otherwise. */ if ( ! function_exists( 'rsssl_caa_record_prevents_le' ) ) { function rsssl_caa_record_prevents_le(): bool { // Get DNS CAA records for site_url() $caa_records = dns_get_record( parse_url( site_url(), PHP_URL_HOST ), DNS_CAA ); // If no CAA records found, return false if ( empty( $caa_records ) ) { return false; } // Check if the CAA record contains letsencrypt.org $caa_contains_le = false; foreach ( $caa_records as $caa_record ) { if ( strpos( $caa_record['value'], 'letsencrypt.org' ) !== false ) { $caa_contains_le = true; break; } } // If the CAA record is set, but does not contain letsencrypt.org, return true; if ( ! $caa_contains_le ) { return true; } // CAA record contains Let's Encrypt, generation allowed return false; } }
Paket Wisata Karimunjawa Terlengkap & Harga Terbaik 2026
https://validator.w3.org/feed/docs/rss2.html
Promo Paket Wisata Karimunjawa
Info Harga dan Paket Liburan ke Karimunjawa
Pulau Karimun Jawa
Paket Mancing Karimunjawa
Paket Trip Karimunjawa
Pelabuhan Karimunjawa
Kuliner Khas Karimunjawa
Pantai Bobby Karimunjawa
Whales: Giants of the Ocean
Whales: Giants of the Ocean
Taka Sendok Karimunjawa
Contact US
Informasi Perjalanan Paket Travel Wisata Karimunjawa
Rental Mobil Karimunjawa
Paket Open Trip Karimunjawa
Paket Snorkeling Karimunjawa
Sama Sama Homestay Karimunjawa
Paket Tour Karimunjawa Jepara
Informasi Biaya Liburan ke Karimunjawa
Paket Wisata Karimunjawa 4 Hari 3 Malam
Oleh Oleh Khas Karimunjawa
Promo Open Trip Karimun Jawa
Tentang Kami
Sunset Karimunjawa
Tiket Kapal Karimunjawa
Informasi Reservasi Hotel Resort Java Paradise Karimunjawa
Taman Nasional Karimunjawa
Informasi Harga Paket Wisata Karimunjawa Murah
Informasi Jadwal Kapal Pelni Semarang ke Karimunjawa
Informasi Jadwal Kapal Karimunjawa Ferry Siginjai
Paket Wisata Karimunjawa Rombongan
Tiket Kapal
Rincian Biaya Wisata Karimunjawa
Paket Wisata Karimunjawa 2 Hari 1 Malam
Booking
Informasi Jadwal Kapal Express Karimunjawa
Paket Diving Karimunjawa
Informasi Harga Paket Wisata Karimunjawa 3 Hari 2 Malam
Harga Paket Travel Karimunjawa
Private Trip Karimunjawa
Paket Wisata Karimunjawa dari Solo
Paket Homestay RGJS Karimunjawa
Cara ke Karimunjawa
Pantai Sunset Beach Karimunjawa
Sitemap
Paket Regular Karimunjawa 3 Hari 2 Malam
Cuaca Karimun Jawa
Karimunjawa Dimana
Narayana Resort Karimunjawa
Pantai Laendra Karimunjawa