Skip to content

Instantly share code, notes, and snippets.

@mohammad425
Created February 28, 2023 07:03
Show Gist options
  • Save mohammad425/d810fc071d51a395724eb7b0b0b67c59 to your computer and use it in GitHub Desktop.
Save mohammad425/d810fc071d51a395724eb7b0b0b67c59 to your computer and use it in GitHub Desktop.
Display Font Awesome Icon Field in Elementor With "Advanced Custom Fields: Font Awesome Field" Plugin
<?php
# Prevent direct file access
defined( 'ABSPATH' ) || exit;
use ElementorPro\Modules\DynamicTags\Tags\Base\Tag;
use ElementorPro\Modules\DynamicTags\ACF\Module;
class ACF_Font_Awesome extends Tag
{
public function get_name()
{
return 'acf-font-awesome';
}
public function get_title()
{
return esc_html__( 'ACF', 'elementor-pro' ) . ' ' . esc_html__( 'Font Awesome', 'elementor-pro' ) . ' ' . esc_html__( 'Field', 'elementor-pro' );
}
public function get_group()
{
return Module::ACF_GROUP;
}
public function get_categories()
{
return [
Module::TEXT_CATEGORY,
Module::POST_META_CATEGORY,
];
}
public function render()
{
[$field, $meta_key] = Module::get_tag_value_field( $this );
if( $field && !empty( $field['type'] ) )
$value = $field['value'];
else
// Field settings has been deleted or not available.
$value = get_field( $meta_key );
echo wp_kses_post( $value );
}
public function get_panel_template_setting_key()
{
return 'key';
}
protected function register_controls()
{
Module::add_key_control( $this );
}
public function get_supported_fields()
{
return [
'font-awesome',
];
}
}
<?php
/**
* Register new Elementor dynamic tags.
*
* @param \Elementor\Core\DynamicTags\Manager $dynamic_tags_manager Elementor dynamic tags manager.
*
* @return void
*/
function register_font_awesome_dynamic_tags($dynamic_tags_manager)
{
include_once ABSPATH . 'wp-content/plugins/elementor-pro/modules/dynamic-tags/tags/base/tag.php';
include_once ABSPATH . 'wp-content/plugins/elementor-pro/modules/dynamic-tags/acf/module.php';
include_once __DIR__ . '/acf-font-awesome.php';
$dynamic_tags_manager->register( new \ACF_Font_Awesome );
}
add_action( 'elementor/dynamic_tags/register', 'register_font_awesome_dynamic_tags' );
@mikriz
Copy link

mikriz commented Sep 26, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment