Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/ninja-fo.../includes
File: Helper.php
<?php if ( ! defined( 'ABSPATH' ) ) exit;
[0] Fix | Delete
[1] Fix | Delete
/**
[2] Fix | Delete
* Class WPN_Helper
[3] Fix | Delete
*
[4] Fix | Delete
* The WP Ninjas Static Helper Class
[5] Fix | Delete
*
[6] Fix | Delete
* Provides additional helper functionality to WordPress helper functions.
[7] Fix | Delete
*/
[8] Fix | Delete
final class WPN_Helper
[9] Fix | Delete
{
[10] Fix | Delete
[11] Fix | Delete
/**
[12] Fix | Delete
* @param $value
[13] Fix | Delete
* @return array|string
[14] Fix | Delete
*/
[15] Fix | Delete
public static function addslashes( $value )
[16] Fix | Delete
{
[17] Fix | Delete
$value = is_array($value) ?
[18] Fix | Delete
array_map('WPN_Helper::addslashes' , $value) :
[19] Fix | Delete
addslashes($value);
[20] Fix | Delete
return $value;
[21] Fix | Delete
}
[22] Fix | Delete
[23] Fix | Delete
/**
[24] Fix | Delete
* @param $input
[25] Fix | Delete
* @return array|string
[26] Fix | Delete
*/
[27] Fix | Delete
public static function utf8_encode( $input ){
[28] Fix | Delete
if ( is_array( $input ) ) {
[29] Fix | Delete
return array_map( 'WPN_Helper::utf8_encode' , $input );
[30] Fix | Delete
} elseif ( function_exists( 'utf8_encode' ) ) {
[31] Fix | Delete
return static::iso8859_1_to_utf8( $input );
[32] Fix | Delete
} else {
[33] Fix | Delete
return $input;
[34] Fix | Delete
}
[35] Fix | Delete
}
[36] Fix | Delete
[37] Fix | Delete
/**
[38] Fix | Delete
* Replace utf8_encode with mimicked functionaliy
[39] Fix | Delete
*
[40] Fix | Delete
* Deprecated in PHP8 and removed in PHP9
[41] Fix | Delete
*
[42] Fix | Delete
* Replacement credit: https://php.watch/versions/8.2/utf8_encode-utf8_decode-deprecated
[43] Fix | Delete
* and https://github.com/symfony/polyfill-php72/blob/v1.26.0/Php72.php#L32-39
[44] Fix | Delete
*
[45] Fix | Delete
* @param string $string
[46] Fix | Delete
* @return string
[47] Fix | Delete
*/
[48] Fix | Delete
public static function iso8859_1_to_utf8( $s) {
[49] Fix | Delete
[50] Fix | Delete
if(!is_string($s)){
[51] Fix | Delete
return $s;
[52] Fix | Delete
}
[53] Fix | Delete
[54] Fix | Delete
$s .= $s;
[55] Fix | Delete
$len = \strlen($s);
[56] Fix | Delete
[57] Fix | Delete
for ($i = $len >> 1, $j = 0; $i < $len; ++$i, ++$j) {
[58] Fix | Delete
switch (true) {
[59] Fix | Delete
case $s[$i] < "\x80": $s[$j] = $s[$i]; break;
[60] Fix | Delete
case $s[$i] < "\xC0": $s[$j] = "\xC2"; $s[++$j] = $s[$i]; break;
[61] Fix | Delete
default: $s[$j] = "\xC3"; $s[++$j] = \chr(\ord($s[$i]) - 64); break;
[62] Fix | Delete
}
[63] Fix | Delete
}
[64] Fix | Delete
[65] Fix | Delete
return substr($s, 0, $j);
[66] Fix | Delete
}
[67] Fix | Delete
[68] Fix | Delete
/**
[69] Fix | Delete
* @param $input
[70] Fix | Delete
* @return array|string
[71] Fix | Delete
*/
[72] Fix | Delete
public static function utf8_decode( $input ){
[73] Fix | Delete
if ( is_array( $input ) ) {
[74] Fix | Delete
return array_map( 'WPN_Helper::utf8_decode' , $input );
[75] Fix | Delete
} elseif ( function_exists( 'utf8_decode' ) ) {
[76] Fix | Delete
return self::utf8_to_iso8859_1( $input );
[77] Fix | Delete
} else {
[78] Fix | Delete
return $input;
[79] Fix | Delete
}
[80] Fix | Delete
}
[81] Fix | Delete
[82] Fix | Delete
/**
[83] Fix | Delete
* Replace utf8_decode with mimicked functionaliy
[84] Fix | Delete
*
[85] Fix | Delete
* Deprecated in PHP8 and removed in PHP9
[86] Fix | Delete
*
[87] Fix | Delete
* Replacement credit: https://php.watch/versions/8.2/utf8_encode-utf8_decode-deprecated
[88] Fix | Delete
* and https://github.com/symfony/polyfill-php72/blob/v1.26.0/Php72.php#L40-69
[89] Fix | Delete
*
[90] Fix | Delete
* @param string $string
[91] Fix | Delete
* @return string
[92] Fix | Delete
*/
[93] Fix | Delete
public static function utf8_to_iso8859_1( $string)
[94] Fix | Delete
{
[95] Fix | Delete
if(!is_string($string)){
[96] Fix | Delete
return $string;
[97] Fix | Delete
}
[98] Fix | Delete
[99] Fix | Delete
$s = (string) $string;
[100] Fix | Delete
$len = \strlen($s);
[101] Fix | Delete
[102] Fix | Delete
for ($i = 0, $j = 0; $i < $len; ++$i, ++$j) {
[103] Fix | Delete
switch ($s[$i] & "\xF0") {
[104] Fix | Delete
case "\xC0":
[105] Fix | Delete
case "\xD0":
[106] Fix | Delete
$c = (\ord($s[$i] & "\x1F") << 6) | \ord($s[++$i] & "\x3F");
[107] Fix | Delete
$s[$j] = $c < 256 ? \chr($c) : '?';
[108] Fix | Delete
break;
[109] Fix | Delete
[110] Fix | Delete
case "\xF0":
[111] Fix | Delete
++$i;
[112] Fix | Delete
// no break
[113] Fix | Delete
[114] Fix | Delete
case "\xE0":
[115] Fix | Delete
$s[$j] = '?';
[116] Fix | Delete
$i += 2;
[117] Fix | Delete
break;
[118] Fix | Delete
[119] Fix | Delete
default:
[120] Fix | Delete
$s[$j] = $s[$i];
[121] Fix | Delete
}
[122] Fix | Delete
}
[123] Fix | Delete
[124] Fix | Delete
return substr($s, 0, $j);
[125] Fix | Delete
}
[126] Fix | Delete
[127] Fix | Delete
/**
[128] Fix | Delete
* Function to clean json data before json_decode.
[129] Fix | Delete
* @since 3.2
[130] Fix | Delete
* @param $input String
[131] Fix | Delete
* @return String
[132] Fix | Delete
*/
[133] Fix | Delete
public static function json_cleanup( $input ) {
[134] Fix | Delete
[135] Fix | Delete
/*
[136] Fix | Delete
* Remove any unwated (corrupted?) characters from either side of our object.
[137] Fix | Delete
*/
[138] Fix | Delete
$l_trim = strpos( $input, '{' );
[139] Fix | Delete
$r_trim = strrpos( $input, '}' ) - $l_trim + 1;
[140] Fix | Delete
return substr( $input, $l_trim, $r_trim );
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
/**
[144] Fix | Delete
* @param $search
[145] Fix | Delete
* @param $replace
[146] Fix | Delete
* @param $subject
[147] Fix | Delete
* @return mixed
[148] Fix | Delete
*/
[149] Fix | Delete
public static function str_replace( $search, $replace, $subject ){
[150] Fix | Delete
if( is_array( $subject ) ){
[151] Fix | Delete
foreach( $subject as &$oneSubject )
[152] Fix | Delete
$oneSubject = WPN_Helper::str_replace($search, $replace, $oneSubject);
[153] Fix | Delete
unset($oneSubject);
[154] Fix | Delete
return $subject;
[155] Fix | Delete
} else {
[156] Fix | Delete
return str_replace($search, $replace, $subject);
[157] Fix | Delete
}
[158] Fix | Delete
}
[159] Fix | Delete
[160] Fix | Delete
/**
[161] Fix | Delete
* @param $value
[162] Fix | Delete
* @param int $flag
[163] Fix | Delete
* @return array|string
[164] Fix | Delete
*/
[165] Fix | Delete
public static function html_entity_decode( $value, $flag = ENT_COMPAT ){
[166] Fix | Delete
$value = is_array($value) ?
[167] Fix | Delete
array_map( 'WPN_Helper::html_entity_decode' , $value) :
[168] Fix | Delete
html_entity_decode( $value, $flag );
[169] Fix | Delete
return $value;
[170] Fix | Delete
}
[171] Fix | Delete
[172] Fix | Delete
/**
[173] Fix | Delete
* @param $value
[174] Fix | Delete
* @return array|string
[175] Fix | Delete
*/
[176] Fix | Delete
public static function htmlspecialchars( $value ){
[177] Fix | Delete
$value = is_array($value) ?
[178] Fix | Delete
array_map( 'WPN_Helper::htmlspecialchars' , $value) :
[179] Fix | Delete
htmlspecialchars( $value );
[180] Fix | Delete
return $value;
[181] Fix | Delete
}
[182] Fix | Delete
[183] Fix | Delete
/**
[184] Fix | Delete
* @param $value
[185] Fix | Delete
* @return array|string
[186] Fix | Delete
*/
[187] Fix | Delete
public static function stripslashes( $value ){
[188] Fix | Delete
$value = is_array($value) ?
[189] Fix | Delete
array_map( 'WPN_Helper::stripslashes' , $value) :
[190] Fix | Delete
stripslashes($value);
[191] Fix | Delete
return $value;
[192] Fix | Delete
}
[193] Fix | Delete
[194] Fix | Delete
/**
[195] Fix | Delete
* @param $value
[196] Fix | Delete
* @return array|string
[197] Fix | Delete
*/
[198] Fix | Delete
public static function esc_html( $value )
[199] Fix | Delete
{
[200] Fix | Delete
$value = is_array($value) ?
[201] Fix | Delete
array_map( 'WPN_Helper::esc_html' , $value) :
[202] Fix | Delete
esc_html($value);
[203] Fix | Delete
return $value;
[204] Fix | Delete
}
[205] Fix | Delete
[206] Fix | Delete
/**
[207] Fix | Delete
* @param $value
[208] Fix | Delete
* @return array|string
[209] Fix | Delete
*/
[210] Fix | Delete
public static function kses_post( $value )
[211] Fix | Delete
{
[212] Fix | Delete
$value = is_array( $value ) ?
[213] Fix | Delete
array_map( 'WPN_Helper::kses_post' , $value ) :
[214] Fix | Delete
wp_kses_post($value);
[215] Fix | Delete
return $value;
[216] Fix | Delete
}
[217] Fix | Delete
[218] Fix | Delete
/**
[219] Fix | Delete
* @param $value
[220] Fix | Delete
* @return array|string
[221] Fix | Delete
*/
[222] Fix | Delete
public static function strip_tags( $value )
[223] Fix | Delete
{
[224] Fix | Delete
$value = is_array( $value ) ?
[225] Fix | Delete
array_map( 'WPN_Helper::strip_tags' , $value ) :
[226] Fix | Delete
strip_tags( $value );
[227] Fix | Delete
return $value;
[228] Fix | Delete
}
[229] Fix | Delete
[230] Fix | Delete
/**
[231] Fix | Delete
* String to Bytes
[232] Fix | Delete
*
[233] Fix | Delete
* Converts PHP settings from a string to bytes.
[234] Fix | Delete
*
[235] Fix | Delete
* @param $size
[236] Fix | Delete
* @return float
[237] Fix | Delete
*/
[238] Fix | Delete
public static function string_to_bytes( $size )
[239] Fix | Delete
{
[240] Fix | Delete
// Remove the non-unit characters from the size.
[241] Fix | Delete
$unit = preg_replace('/[^bkmgtpezy]/i', '', $size);
[242] Fix | Delete
[243] Fix | Delete
// Remove the non-numeric characters from the size.
[244] Fix | Delete
$size = preg_replace('/[^0-9\.]/', '', $size);
[245] Fix | Delete
[246] Fix | Delete
if ( $unit && is_array( $unit ) ) {
[247] Fix | Delete
// Find the position of the unit in the ordered string which is the power of magnitude to multiply a kilobyte by.
[248] Fix | Delete
$size *= pow( 1024, stripos( 'bkmgtpezy', $unit[0] ) );
[249] Fix | Delete
}
[250] Fix | Delete
[251] Fix | Delete
return round($size);
[252] Fix | Delete
}
[253] Fix | Delete
[254] Fix | Delete
public static function str_putcsv( $array, $delimiter = ',', $enclosure = '"', $terminator = "\n" ) {
[255] Fix | Delete
// First convert associative array to numeric indexed array
[256] Fix | Delete
$workArray = array();
[257] Fix | Delete
foreach ($array as $key => $value) {
[258] Fix | Delete
$workArray[] = $value;
[259] Fix | Delete
}
[260] Fix | Delete
[261] Fix | Delete
$returnString = ''; # Initialize return string
[262] Fix | Delete
$arraySize = count( $workArray ); # Get size of array
[263] Fix | Delete
[264] Fix | Delete
for ( $i=0; $i<$arraySize; $i++ ) {
[265] Fix | Delete
// Nested array, process nest item
[266] Fix | Delete
if ( is_array( $workArray[$i] ) ) {
[267] Fix | Delete
$returnString .= self::str_putcsv( $workArray[$i], $delimiter, $enclosure, $terminator );
[268] Fix | Delete
} else {
[269] Fix | Delete
switch ( gettype( $workArray[$i] ) ) {
[270] Fix | Delete
// Manually set some strings
[271] Fix | Delete
case "NULL": $_spFormat = ''; break;
[272] Fix | Delete
case "boolean": $_spFormat = ($workArray[$i] == true) ? 'true': 'false'; break;
[273] Fix | Delete
// Make sure sprintf has a good datatype to work with
[274] Fix | Delete
case "integer": $_spFormat = '%i'; break;
[275] Fix | Delete
case "double": $_spFormat = '%0.2f'; break;
[276] Fix | Delete
case "string": $_spFormat = '%s'; $workArray[$i] = str_replace("$enclosure", "$enclosure$enclosure", $workArray[$i]); break;
[277] Fix | Delete
// Unknown or invalid items for a csv - note: the datatype of array is already handled above, assuming the data is nested
[278] Fix | Delete
case "object":
[279] Fix | Delete
case "resource":
[280] Fix | Delete
default: $_spFormat = ''; break;
[281] Fix | Delete
}
[282] Fix | Delete
$returnString .= sprintf('%2$s'.$_spFormat.'%2$s', $workArray[$i], $enclosure);
[283] Fix | Delete
$returnString .= ($i < ($arraySize-1)) ? $delimiter : $terminator;
[284] Fix | Delete
}
[285] Fix | Delete
}
[286] Fix | Delete
// Done the workload, return the output information
[287] Fix | Delete
return $returnString;
[288] Fix | Delete
}
[289] Fix | Delete
[290] Fix | Delete
public static function get_query_string( $key, $default = FALSE )
[291] Fix | Delete
{
[292] Fix | Delete
if( ! isset( $_GET[ $key ] ) ) return $default;
[293] Fix | Delete
[294] Fix | Delete
$value = self::htmlspecialchars( $_GET[ $key ] );
[295] Fix | Delete
[296] Fix | Delete
if( is_array( $value ) ) $value = reset( $value );
[297] Fix | Delete
[298] Fix | Delete
return $value;
[299] Fix | Delete
}
[300] Fix | Delete
[301] Fix | Delete
public static function sanitize_text_field( $data )
[302] Fix | Delete
{
[303] Fix | Delete
if( is_array( $data ) ){
[304] Fix | Delete
return array_map( 'WPN_Helper::sanitize_text_field' , $data );
[305] Fix | Delete
}
[306] Fix | Delete
return sanitize_text_field( $data );
[307] Fix | Delete
}
[308] Fix | Delete
[309] Fix | Delete
public static function get_plugin_version( $plugin )
[310] Fix | Delete
{
[311] Fix | Delete
$plugins = get_plugins();
[312] Fix | Delete
[313] Fix | Delete
if( ! isset( $plugins[ $plugin ] ) ) return false;
[314] Fix | Delete
[315] Fix | Delete
return $plugins[ $plugin ][ 'Version' ];
[316] Fix | Delete
}
[317] Fix | Delete
[318] Fix | Delete
public static function is_func_disabled( $function )
[319] Fix | Delete
{
[320] Fix | Delete
if( ! function_exists( $function ) ) return true;
[321] Fix | Delete
$disabled = explode( ',', ini_get( 'disable_functions' ) );
[322] Fix | Delete
return in_array( $function, $disabled );
[323] Fix | Delete
}
[324] Fix | Delete
[325] Fix | Delete
public static function maybe_unserialize( $original )
[326] Fix | Delete
{
[327] Fix | Delete
// Repalcement for https://codex.wordpress.org/Function_Reference/maybe_unserialize
[328] Fix | Delete
if ( is_serialized( $original ) ){
[329] Fix | Delete
// Ported with php5.2 support from https://magp.ie/2014/08/13/php-unserialize-string-after-non-utf8-characters-stripped-out/
[330] Fix | Delete
$parsed = preg_replace_callback( '!s:(\d+):"(.*?)";!s', 'WPN_Helper::parse_utf8_serialized' , $original );
[331] Fix | Delete
$parsed = @unserialize( $parsed );
[332] Fix | Delete
[333] Fix | Delete
return ( $parsed ) ? $parsed : unserialize( $original ); // Fallback if parse error.
[334] Fix | Delete
}
[335] Fix | Delete
return $original;
[336] Fix | Delete
}
[337] Fix | Delete
[338] Fix | Delete
/**
[339] Fix | Delete
* Function to fetch our cache from the upgrades table (if it exists there).
[340] Fix | Delete
*
[341] Fix | Delete
* @param $id (int) The form ID.
[342] Fix | Delete
*
[343] Fix | Delete
* @since 3.3.7
[344] Fix | Delete
*/
[345] Fix | Delete
public static function get_nf_cache( $id ) {
[346] Fix | Delete
// See if we have the data in our table already.
[347] Fix | Delete
global $wpdb;
[348] Fix | Delete
$sql = "SELECT cache FROM `{$wpdb->prefix}nf3_upgrades` WHERE id = " . intval( $id );
[349] Fix | Delete
$result = $wpdb->get_results( $sql, 'ARRAY_A' );
[350] Fix | Delete
// If so...
[351] Fix | Delete
if ( ! empty( $result ) ) {
[352] Fix | Delete
// Unserialize the result.
[353] Fix | Delete
$value = WPN_Helper::maybe_unserialize( $result[ 0 ][ 'cache' ] );
[354] Fix | Delete
// Return it.
[355] Fix | Delete
return $value;
[356] Fix | Delete
} // Otherwise... (We don't have the data.)
[357] Fix | Delete
else {
[358] Fix | Delete
// Get it from the options table.
[359] Fix | Delete
return get_option( 'nf_form_' . $id );
[360] Fix | Delete
}
[361] Fix | Delete
}
[362] Fix | Delete
[363] Fix | Delete
/**
[364] Fix | Delete
* Function to insert or update our cache in the upgrades table (if it exists).
[365] Fix | Delete
*
[366] Fix | Delete
* @param $id (int) The form ID.
[367] Fix | Delete
* @param $data (string) The form cache.
[368] Fix | Delete
* @param $stage (int) The target stage of this update. Default to the current max stage.
[369] Fix | Delete
*
[370] Fix | Delete
* @since 3.3.7
[371] Fix | Delete
* @updated 3.4.0
[372] Fix | Delete
*/
[373] Fix | Delete
public static function update_nf_cache( $id, $data, $stage = 0 ) {
[374] Fix | Delete
$stage = ( $stage ) ? $stage : WPN_Helper::get_stage();
[375] Fix | Delete
// Serialize our data.
[376] Fix | Delete
$cache = serialize( $data );
[377] Fix | Delete
global $wpdb;
[378] Fix | Delete
// See if we've already got a record.
[379] Fix | Delete
$sql = "SELECT id FROM `{$wpdb->prefix}nf3_upgrades` WHERE id = " . intval( $id );
[380] Fix | Delete
$result = $wpdb->get_results( $sql, 'ARRAY_A' );
[381] Fix | Delete
// If we don't already have the data...
[382] Fix | Delete
if ( empty( $result ) ) {
[383] Fix | Delete
// Insert it.
[384] Fix | Delete
$sql = $wpdb->prepare( "INSERT INTO `{$wpdb->prefix}nf3_upgrades` (id, cache, stage) VALUES (%d, %s, %s)", intval( $id ), $cache, intval( $stage ) );
[385] Fix | Delete
} // Otherwise... (We do have the data.)
[386] Fix | Delete
else {
[387] Fix | Delete
// Update the existing record.
[388] Fix | Delete
$sql = $wpdb->prepare( "UPDATE `{$wpdb->prefix}nf3_upgrades` SET cache = %s, stage = %d WHERE id = %d", $cache, intval( $stage ), intval( $id ) );
[389] Fix | Delete
}
[390] Fix | Delete
$wpdb->query( $sql );
[391] Fix | Delete
}
[392] Fix | Delete
[393] Fix | Delete
/**
[394] Fix | Delete
* Function to retrieve our upgrade stage.
[395] Fix | Delete
* Remove this after the cache has been resolved.
[396] Fix | Delete
*
[397] Fix | Delete
* @return int
[398] Fix | Delete
*
[399] Fix | Delete
* @since 3.4.0
[400] Fix | Delete
*/
[401] Fix | Delete
public static function get_stage() {
[402] Fix | Delete
$ver = Ninja_Forms::$db_version;
[403] Fix | Delete
$stack = explode( '.', $ver );
[404] Fix | Delete
return intval( array_pop( $stack ) );
[405] Fix | Delete
}
[406] Fix | Delete
[407] Fix | Delete
/**
[408] Fix | Delete
* Function to build our form cache from the table.
[409] Fix | Delete
*
[410] Fix | Delete
* @param $id (int) The form ID.
[411] Fix | Delete
* @since 3.3.18
[412] Fix | Delete
* @return $form_cache Array of form data.
[413] Fix | Delete
* @updated 3.4.0
[414] Fix | Delete
*/
[415] Fix | Delete
public static function build_nf_cache( $id ) {
[416] Fix | Delete
$form = Ninja_Forms()->form( $id )->get();
[417] Fix | Delete
[418] Fix | Delete
$form_cache = array(
[419] Fix | Delete
'id' => $id,
[420] Fix | Delete
'fields' => array(),
[421] Fix | Delete
'actions' => array(),
[422] Fix | Delete
'settings' => $form->get_settings(),
[423] Fix | Delete
);
[424] Fix | Delete
[425] Fix | Delete
$fields = Ninja_Forms()->form( $id )->get_fields();
[426] Fix | Delete
[427] Fix | Delete
foreach( $fields as $field ){
[428] Fix | Delete
// If the field is set.
[429] Fix | Delete
if ( ! is_null( $field ) && ! empty( $field ) ) {
[430] Fix | Delete
array_push( $form_cache[ 'fields' ], array( 'settings' => $field->get_settings(), 'id' => $field->get_id() ) );
[431] Fix | Delete
}
[432] Fix | Delete
}
[433] Fix | Delete
[434] Fix | Delete
$actions = Ninja_Forms()->form( $id )->get_actions();
[435] Fix | Delete
[436] Fix | Delete
foreach( $actions as $action ){
[437] Fix | Delete
// If the action is set.
[438] Fix | Delete
if ( ! is_null( $action ) && ! empty( $action ) ) {
[439] Fix | Delete
array_push( $form_cache[ 'actions' ], array( 'settings' => $action->get_settings(), 'id' => $action->get_id() ) );
[440] Fix | Delete
}
[441] Fix | Delete
}
[442] Fix | Delete
[443] Fix | Delete
WPN_Helper::update_nf_cache( $id, $form_cache );
[444] Fix | Delete
[445] Fix | Delete
return $form_cache;
[446] Fix | Delete
}
[447] Fix | Delete
[448] Fix | Delete
/**
[449] Fix | Delete
* Function to delete our cache.
[450] Fix | Delete
*
[451] Fix | Delete
* @param $id (int) The form ID.
[452] Fix | Delete
*
[453] Fix | Delete
* @since 3.3.7
[454] Fix | Delete
*/
[455] Fix | Delete
public static function delete_nf_cache( $id ) {
[456] Fix | Delete
global $wpdb;
[457] Fix | Delete
$sql = "DELETE FROM `{$wpdb->prefix}nf3_upgrades` WHERE id = " . intval( $id );
[458] Fix | Delete
$wpdb->query( $sql );
[459] Fix | Delete
delete_option( 'nf_form_' . intval( $id ) );
[460] Fix | Delete
}
[461] Fix | Delete
[462] Fix | Delete
private static function parse_utf8_serialized( $matches )
[463] Fix | Delete
{
[464] Fix | Delete
if ( isset( $matches[2] ) ){
[465] Fix | Delete
return 's:'.strlen($matches[2]).':"'.$matches[2].'";';
[466] Fix | Delete
}
[467] Fix | Delete
}
[468] Fix | Delete
[469] Fix | Delete
/**
[470] Fix | Delete
* This funtion gets/creates the Ninja Forms gate keeper( a random integer
[471] Fix | Delete
* between 1 and 100 ). We will use this number when deciding whether a
[472] Fix | Delete
* particular install is eligible for an upgrade or whatever else we decide
[473] Fix | Delete
* to use it for
[474] Fix | Delete
*
[475] Fix | Delete
* @return int $zuul
[476] Fix | Delete
*
[477] Fix | Delete
* @since 3.4.0
[478] Fix | Delete
*/
[479] Fix | Delete
public static function get_zuul() {
[480] Fix | Delete
$zuul = get_option( 'ninja_forms_zuul', -1 );
[481] Fix | Delete
[482] Fix | Delete
if( -1 === $zuul ) {
[483] Fix | Delete
$zuul = rand( 1, 100 );
[484] Fix | Delete
update_option( 'ninja_forms_zuul', $zuul, false );
[485] Fix | Delete
}
[486] Fix | Delete
[487] Fix | Delete
return $zuul;
[488] Fix | Delete
}
[489] Fix | Delete
[490] Fix | Delete
/**
[491] Fix | Delete
* This function will return true/false based on an option( ninja_forms_zuul )
[492] Fix | Delete
* and a threshold that we set. We can use this to limit updates
[493] Fix | Delete
*
[494] Fix | Delete
* @param $threshold
[495] Fix | Delete
*
[496] Fix | Delete
* @return bool
[497] Fix | Delete
*
[498] Fix | Delete
* @since 3.4.0
[499] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function