Files
roi-theme/wp-content/plugins/thrive-product-manager/inc/functions.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

102 lines
3.0 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-product-manager
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden!
}
/**
*
* Replacement for WordPress's set_transient.
* There are cases when set_transient() will simply fail if an external cache plugin declares the global $_wp_using_ext_object_cache
* ( e.g. using memcached ) BUT the memcached server is not reachable.
* In this case both set_transient() and get_transient() will not work.
* Use this only if you really want the transient functionality to work regardless of caching plugins.
* To be used in critical circumstances, e.g. storing licensing data - as it will add the option with autoload = 'yes', so don't use to store huge amounts of data!
*
* @param string $transient Transient name
* @param mixed $value Transient value
* @param int $expiration Optional. Time until expiration in seconds. Default null (no expiration).
*
* @return bool True if the value was set, false otherwise.
*/
function tpm_set_transient( $transient, $value, $expiration = null ) {
/**
* Filter the expiration value
*
* @param int $expiration expiration time, in seconds
*/
$expiration = (int) apply_filters( "thrive_transient_expiration_{$transient}", (int) $expiration );
/**
* Filter the transient value
*
* @param mixed $value
*/
$value = apply_filters( "thrive_transient_value_{$transient}", $value );
$option_name = "_thrive_tr_{$transient}";
if ( $expiration !== 0 ) {
$expiration = time() + $expiration;
}
$data = get_option( $option_name );
if ( false === $data ) {
// does not exist. add it
$result = add_option( $option_name, [
'value' => $value,
'exp' => $expiration,
] );
} else {
// transient found, update it
$data['value'] = $value;
$data['exp'] = $expiration;
$result = update_option( $option_name, $data );
}
return $result;
}
/**
* To be used in conjunction with `thrive_set_transient`
*
* @param string $transient
*
* @return bool
* @see thrive_set_transient()
*
*/
function tpm_delete_transient( $transient ) {
return delete_option( "_thrive_tr_{$transient}" );
}
/**
* Replacement for WordPress's get_transient()
* There are cases when get_transient() will simply fail if an external cache plugin declares
* the global $_wp_using_ext_object_cache ( e.g. using memcached ) BUT the memcached server is not reachable.
* In this case both set_transient() and get_transient() will not work.
*
* @param string $transient Transient name
*
* @return mixed transient value, or false if transient is not set or is expired
*/
function tpm_get_transient( $transient ) {
$data = get_option( "_thrive_tr_{$transient}" );
$value = is_array( $data ) && isset( $data['value'], $data['exp'] ) ? $data['value'] : false;
/* if data has the correct format, then check expiration - if not zero and in the past, return false */
if ( $value !== false && $data['exp'] && $data['exp'] < time() ) {
$value = false;
}
return $value;
}