Files
roi-theme/wp-content/plugins/thrive-product-manager/thrive-dashboard/inc/metrics/class-utils.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

123 lines
2.3 KiB
PHP
Executable File

<?php
/**
* Thrive Themes - https://thrivethemes.com
*
* @package thrive-dashboard
*/
namespace TVE\Dashboard\Metrics;
use TVE_Dash_Product_Abstract;
use function tve_dash_api_remote_post;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Silence is golden!
}
class Utils {
const THRIVE_KEY = '@#$()%*%$^&*(#@$%@#$%93827456MASDFJIK3245';
/**
* @param string $url
* @param array $data
*
* @return void
*/
public static function send_request( $url, array $data = [] ) {
$url = add_query_arg( [
'p' => static::calc_thrive_hash( $data ),
], $url );
tve_dash_api_remote_post( $url,
[
'body' => json_encode( $data ),
'headers' => [
'Content-Type' => 'application/json',
],
]
);
}
/**
* Whether we are on plugin screen
*
* @return bool
*/
public static function is_plugins_screen() {
$screen = get_current_screen();
return $screen && in_array( $screen->id, [ 'plugins', 'plugins-network' ] );
}
/**
* Calc the hash that should be sent on APIs requests
*
* @param array $data
*
* @return string
*/
public static function calc_thrive_hash( array $data ) {
return md5( static::THRIVE_KEY . serialize( $data ) . static::THRIVE_KEY );
}
/**
* Hash a string
*
* @param string $string
*
* @return string
*/
public static function hash_256( $string ) {
if ( $string === null || static::is_hashed( $string ) ) {
return $string;
}
return hash( 'sha256', $string );
}
/**
* Check if a string is hashed
*
* @param string $string
*
* @return bool
*/
public static function is_hashed( $string ) {
return strlen( $string ) === 64 && ctype_xdigit( $string );
}
/**
* Default options for string required params
*
* @return array
*/
public static function get_rest_string_arg_data() {
return [
'type' => 'string',
'required' => true,
'validate_callback' => static function ( $param ) {
return ! empty( $param );
},
];
}
/**
* get a list of products with their localizations
*
* @return array
*/
public static function get_products() {
$installed = tve_dash_get_products( false );
$localized = [];
foreach ( $installed as $key => $product ) {
/**
* @var $product TVE_Dash_Product_Abstract
*/
$localized[ $key ] = $product->localize_data();
}
return $localized;
}
}