v2.0.0: add includes/Tools/OptionTools.php
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
namespace AskTamMCP\Tools;
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
class OptionTools {
|
||||
private static array $blocked = ['auth_key','secure_auth_key','logged_in_key','nonce_key','auth_salt','secure_auth_salt','logged_in_salt','nonce_salt','admin_email','admin_pass'];
|
||||
public static function getOption(array $args): array {
|
||||
$name = $args['option_name'];
|
||||
if (in_array($name, self::$blocked, true)) throw new \RuntimeException("Option '{$name}' is restricted.");
|
||||
$val = get_option($name);
|
||||
return ['option_name'=>$name,'value'=>$val];
|
||||
}
|
||||
public static function updateOption(array $args): array {
|
||||
$name = $args['option_name'];
|
||||
if (in_array($name, self::$blocked, true)) throw new \RuntimeException("Option '{$name}' is restricted.");
|
||||
update_option($name, $args['option_value']);
|
||||
return ['option_name'=>$name,'updated'=>true];
|
||||
}
|
||||
public static function listOptions(array $args): array {
|
||||
global $wpdb;
|
||||
$prefix = $args['prefix'] ?? '';
|
||||
$like = $wpdb->esc_like($prefix) . '%';
|
||||
$rows = $wpdb->get_results($wpdb->prepare("SELECT option_name, LENGTH(option_value) as val_length FROM {$wpdb->options} WHERE option_name LIKE %s LIMIT 100", $like), ARRAY_A);
|
||||
return ['options'=>$rows,'prefix'=>$prefix];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user