File: /var/www/html/triad-infosec/wp-content/themes/Avada/includes/class-awb-acf.php
<?php
/**
* Handles ACF customizations.
*
* @author ThemeFusion
* @copyright (c) Copyright by ThemeFusion
* @link https://avada.com
* @package Avada
* @subpackage Core
* @since 7.11.10
*/
// Do not allow directly accessing this file.
if ( ! defined( 'ABSPATH' ) ) {
exit( 'Direct script access denied.' );
}
/**
* Handles ACF customizations-
*/
class AWB_ACF {
/**
* The one, true instance of this object.
*
* @static
* @access private
* @since 7.11.10
* @var object
*/
private static $instance;
/**
* The constructor.
*
* @access public
* @since 7.11.10
* @return void
*/
public function __construct() {
add_filter( 'acf/fields/icon_picker/tabs', [ $this, 'add_icon_picker_tab' ] );
add_action( 'acf/fields/icon_picker/tab/avada_icon', [ $this, 'add_avada_icon_field' ] );
add_action( 'acf/input/admin_enqueue_scripts', [ $this, 'add_avada_icon_script_styles' ] );
}
/**
* Adds an additional tab to the icon picker field tabs.
*
* @access public
* @since 7.11.10
* @param array $tabs The icon picker field tabs.
* @return array The updated tabs
*/
public function add_icon_picker_tab( $tabs ) {
$tabs['avada_icon'] = esc_html__( 'Avada Icon', 'Avada' );
return $tabs;
}
/**
* Adds content to the additional tab of the icon picker field.
*
* @access public
* @since 7.11.10
* @param array $field The icon picker field.
* @return void
*/
public function add_avada_icon_field( $field ) {
echo '<div class="acf-icon-picker-avada-icons">';
acf_text_input(
[
'class' => 'acf-avada_icon',
'value' => 'avada_icon' === $field['value']['type'] ? $field['value']['value'] : '',
]
);
// Helper Text.
?>
<p class="description"><?php esc_html_e( 'Enter the slug of the Avada icon you want to display.', 'Avada' ); ?></p>
<?php
echo '</div>';
}
/**
* Adds the inline script for the Avada icon tab data handling.
*
* @access public
* @since 7.11.10
* @return void
*/
public function add_avada_icon_script_styles() {
wp_add_inline_script(
'acf-input',
'
acf.addAction( "ready", function() {
const iconPickers = acf.getFields( acf.findFields( { type: "icon_picker" } ) );
jQuery.each( iconPickers, function( index, value ) {
const self = value;
value.$el.find( ".acf-avada_icon" ).on( "input", function( event ) {
const currentValue = event.target.value;
self.updateTypeAndValue( "avada_icon", currentValue );
} );
} );
} );
'
);
wp_add_inline_style(
'acf-input',
'
.acf-icon-picker-avada-icon-tabs {
display: flex;
background-color: #f9f9f9;
padding: 12px;
border: 1px solid #8c8f94;
}
.acf-icon-picker-avada-icons { width: 100%; }
'
);
}
/**
* Creates or returns an instance of this class.
*
* @static
* @access public
* @since 7.11.10
* @return object AWB_ACF
*/
public static function get_instance() {
// If an instance hasn't been created and set to $instance create an instance and set it to $instance.
if ( null === self::$instance ) {
self::$instance = new AWB_ACF();
}
return self::$instance;
}
}
/**
* Instantiates the AWB_ACF class.
* Make sure the class is properly set-up.
*
* @since object 7.7
* @return object AWB_ACF
*/
function AWB_ACF() { // phpcs:ignore WordPress.NamingConventions
return AWB_ACF::get_instance();
}