fair-plugin/inc/icons/namespace.php
Ryan McCue 9ce4b13d15
Add installer for FAIR protocol (#71)
Signed-off-by: Ryan McCue <me@ryanmccue.info>
Signed-off-by: Andy Fragen <andy@thefragens.com>
Signed-off-by: costdev <79332690+costdev@users.noreply.github.com>
Signed-off-by: Colin Stewart <79332690+costdev@users.noreply.github.com>
Signed-off-by: Joe Dolson <design@joedolson.com>
Co-authored-by: Andy Fragen <andy@thefragens.com>
Co-authored-by: costdev <79332690+costdev@users.noreply.github.com>
Co-authored-by: Joe Dolson <design@joedolson.com>
2025-07-27 09:37:50 -07:00

56 lines
1 KiB
PHP

<?php
/**
* Adds a local source for default icon SVG.
*
* @package FAIR
*/
namespace FAIR\Icons;
use const FAIR\PLUGIN_FILE;
use stdClass;
/**
* Bootstrap
*/
function bootstrap() {
add_filter( 'site_transient_update_plugins', __NAMESPACE__ . '\\set_default_icon', 99, 1 );
}
/**
* Set default icon in update transient.
*
* @param stdClass $transient Update transient.
*
* @return stdClass
*/
function set_default_icon( $transient ) {
// The transient may not be set yet.
if ( ! is_object( $transient ) ) {
$transient = new stdClass();
}
if ( ! property_exists( $transient, 'response' ) ) {
return $transient;
}
foreach ( $transient->response as $updates ) {
$url = plugin_dir_url( PLUGIN_FILE ) . 'inc/icons/svg.php';
$url = add_query_arg( 'color', set_random_color(), $url );
$updates->icons['default'] = $url;
}
return $transient;
}
/**
* Set random color.
*
* @return string
*/
function set_random_color() {
$rand = str_pad( dechex( wp_rand( 0x000000, 0xFFFFFF ) ), 6, 0, STR_PAD_LEFT );
return $rand;
}