/home/ytevagd/public_html/wp-content/themes/flatsome/inc/admin/backend/menu/class-menu.php
<?php
/**
* Menu options handler
*
* @author UX Themes
* @package Flatsome
* @since 3.13.0
*/
namespace Flatsome\Admin;
defined( 'ABSPATH' ) || exit;
/**
* Class Menu
*
* @package Flatsome\Admin
*/
class Menu {
/**
* Option field identifiers
*
* @var array
*/
private $fields = array(
'design',
'width',
'height',
'block',
'behavior',
'icon-type',
'icon-id',
'icon-width',
'icon-height',
'icon-html',
);
/**
* Holds all UX blocks by ID.
*
* @var array
*/
private $ux_blocks = array();
/**
* Menu constructor.
*/
public function __construct() {
if ( apply_filters( 'flatsome_admin_menu_items_enabled', true ) ) {
$this->ux_blocks = flatsome_get_block_list_by_id();
add_action( 'admin_enqueue_scripts', [ $this, 'register_assets' ] );
add_action( 'wp_nav_menu_item_custom_fields', [ $this, 'add_menu_fields' ], 10, 5 );
add_action( 'wp_update_nav_menu_item', [ $this, 'update_menu_fields' ], 10, 3 );
}
}
/**
* Adds menu item custom fields.
*
* @param int $item_id Menu item ID.
* @param \WP_Post $item Menu item data object.
* @param int $depth Depth of menu item. Used for padding.
* @param \stdClass $args An object of menu item arguments.
* @param int $id Nav menu ID.
*/
public function add_menu_fields( $item_id, $item, $depth, $args, $id ) { //phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$design = get_post_meta( $item_id, '_menu_item_design', true );
$width = get_post_meta( $item_id, '_menu_item_width', true );
$height = get_post_meta( $item_id, '_menu_item_height', true );
$block = get_post_meta( $item_id, '_menu_item_block', true );
$behavior = get_post_meta( $item_id, '_menu_item_behavior', true );
$icon_type = get_post_meta( $item_id, '_menu_item_icon-type', true );
$icon_id = get_post_meta( $item_id, '_menu_item_icon-id', true );
$icon_width = get_post_meta( $item_id, '_menu_item_icon-width', true );
$icon_height = get_post_meta( $item_id, '_menu_item_icon-height', true );
$icon_html = get_post_meta( $item_id, '_menu_item_icon-html', true );
ob_start();
?>
<?php $this->menu_divider(); ?>
<div class="ux-menu-item-options">
<h3>
<svg width="20" height="20" viewBox="0 0 438 438" fill="none" xmlns="http://www.w3.org/2000/svg" style="margin-top: -3px; vertical-align: middle">
<path d="M218.505 437.013V375.737L169.875 327.108L218.505 278.476V217.2L139.236 296.471L61.2764 218.51L218.505 61.2804V0.00683594L0 218.51L218.505 437.013Z" fill="black"/>
<path opacity="0.5" d="M218.507 61.2759L375.735 218.505L297.776 296.464L218.507 217.198V278.472L267.139 327.103L218.507 375.732V437.006L328.413 327.103L437.012 218.505L218.507 0V61.2759Z" fill="black"/>
</svg>
<?php esc_html_e( 'Flatsome menu item options', 'flatsome' ); ?>
</h3>
<div class="ux-menu-item-options__section-dropdown">
<?php $this->section_title( __( 'Menu dropdown', 'flatsome' ) ); ?>
<p class="description description-wide ux-menu-item-options__design">
<label for="edit-menu-item-design-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Design', 'flatsome' ); ?><br>
<select id="edit-menu-item-design-<?php echo esc_attr( $item_id ); ?>" class="widefat" name="menu-item-design[<?php echo esc_attr( $item_id ); ?>]">
<option value="default" <?php selected( $design, 'default', true ); ?>><?php esc_html_e( 'Default', 'flatsome' ); ?></option>
<option value="custom-size" <?php selected( $design, 'custom-size', true ); ?>><?php esc_html_e( 'Default (custom size)', 'flatsome' ); ?></option>
<option value="container-width" <?php selected( $design, 'container-width', true ); ?>><?php esc_html_e( 'Container width', 'flatsome' ); ?></option>
<option value="full-width" <?php selected( $design, 'full-width', true ); ?>><?php esc_html_e( 'Full width', 'flatsome' ); ?></option>
</select>
</label>
<?php $this->field_description( __( 'Select dropdown design.', 'flatsome' ) ); ?>
</p>
<p class="description description-thin ux-menu-item-options__width">
<label for="edit-menu-item-width-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Width', 'flatsome' ); ?> (px)<br>
<input type="number" id="edit-menu-item-width-<?php echo esc_attr( $item_id ); ?>" class="widefat" min="0" name="menu-item-width[<?php echo esc_attr( $item_id ); ?>]" value="<?php echo esc_attr( $width ); ?>">
</label>
</p>
<p class="description description-thin ux-menu-item-options__height">
<label for="edit-menu-item-height-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Height (optional)', 'flatsome' ); ?> (px)<br>
<input type="number" id="edit-menu-item-height-<?php echo esc_attr( $item_id ); ?>" class="widefat" min="0" name="menu-item-height[<?php echo esc_attr( $item_id ); ?>]" value="<?php echo esc_attr( $height ); ?>">
</label>
</p>
<p class="description description-wide ux-menu-item-options__block">
<label for="edit-menu-item-block-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'UX Block', 'flatsome' ); ?><br>
<select id="edit-menu-item-block-<?php echo esc_attr( $item_id ); ?>" class="widefat" name="menu-item-block[<?php echo esc_attr( $item_id ); ?>]">
<option value="" <?php selected( $block, '', true ); ?>><?php echo '-- None --'; ?></option>
<?php foreach ( $this->ux_blocks as $block_id => $title ) : ?>
<option value="<?php echo esc_attr( $block_id ); ?>" <?php selected( $block, $block_id, true ); ?>><?php echo esc_html( $title ); ?></option>
<?php endforeach ?>
</select>
</label>
<?php $this->field_description( 'Select UX Block as dropdown content.' ); ?>
</p>
<p class="description description-wide ux-menu-item-options__behavior">
<label for="edit-menu-item-behavior-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Reveal', 'flatsome' ); ?><br>
<select id="edit-menu-item-behavior-<?php echo esc_attr( $item_id ); ?>" class="widefat" name="menu-item-behavior[<?php echo esc_attr( $item_id ); ?>]">
<option value="hover" <?php selected( $behavior, 'hover', true ); ?>><?php esc_html_e( 'On hover', 'flatsome' ); ?></option>
<option value="click" <?php selected( $behavior, 'click', true ); ?>><?php esc_html_e( 'On click', 'flatsome' ); ?></option>
</select>
</label>
</p>
</div>
<?php $this->section_title( __( 'Menu icon', 'flatsome' ) ); ?>
<p class="description description-wide ux-menu-item-options__icon-type">
<label for="edit-menu-item-icon-type-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Icon type', 'flatsome' ); ?><br>
<select id="edit-menu-item-icon-type-<?php echo esc_attr( $item_id ); ?>" class="widefat" name="menu-item-icon-type[<?php echo esc_attr( $item_id ); ?>]">
<option value="media" <?php selected( $icon_type, 'media', true ); ?>><?php esc_html_e( 'Media library', 'flatsome' ); ?></option>
<option value="html" <?php selected( $icon_type, 'html', true ); ?>><?php esc_html_e( 'Custom content', 'flatsome' ); ?></option>
</select>
</label>
</p>
<div class="ux-menu-item-options__media hide-if-no-js">
<p class="description description-thin ux-menu-item-options__media-control">
<label for="edit-menu-item-icon-id-<?php echo esc_attr( $item_id ); ?>">
<?php $this->media_view_html( $item_id, $icon_id, 'icon-id' ); ?>
</label>
</p>
<p class="description description-thin ux-menu-item-options__icon-size">
<label for="edit-menu-item-icon-width-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Width', 'flatsome' ); ?> (px)<br>
<input type="number" id="edit-menu-item-icon-width-<?php echo esc_attr( $item_id ); ?>" class="widefat" min="0" name="menu-item-icon-width[<?php echo esc_attr( $item_id ); ?>]" value="<?php echo esc_attr( $icon_width ); ?>">
</label>
<label for="edit-menu-item-icon-height-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Height', 'flatsome' ); ?> (px)<br>
<input type="number" id="edit-menu-item-icon-height-<?php echo esc_attr( $item_id ); ?>" class="widefat" min="0" name="menu-item-icon-height[<?php echo esc_attr( $item_id ); ?>]" value="<?php echo esc_attr( $icon_height ); ?>">
</label>
<?php $this->field_description( __( 'Icons default (empty) to 20x20.', 'flatsome' ) ); ?>
</p>
</div>
<p class="description description-wide ux-menu-item-options__icon-html">
<label for="edit-menu-item-icon-html-<?php echo esc_attr( $item_id ); ?>">
<?php esc_html_e( 'Markup', 'flatsome' ); ?><br>
<textarea id="edit-menu-item-icon-html-<?php echo esc_attr( $item_id ); ?>" class="widefat" rows="3" cols="20" name="menu-item-icon-html[<?php echo esc_attr( $item_id ); ?>]"><?php echo esc_attr( $icon_html ); ?></textarea>
</label>
<?php $this->field_description( __( 'Add any HTML, SVG or shortcode here.', 'flatsome' ) ); ?>
</p>
</div>
<?php $this->menu_divider(); ?>
<br>
<?php
echo ob_get_clean(); //phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
* Updates menu custom fields.
*
* @param int $menu_id ID of the updated menu.
* @param int $menu_item_db_id ID of the updated menu item.
* @param array $args An array of arguments used to update a menu item.
*/
public function update_menu_fields( $menu_id, $menu_item_db_id, $args ) { //phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
foreach ( $this->fields as $field ) {
$key = 'menu-item-' . $field;
if ( isset( $_POST[ $key ] ) && ! empty( $_POST[ $key ] ) && is_array( $_POST[ $key ] ) && isset( $_POST[ $key ][ $menu_item_db_id ] ) ) { //phpcs:ignore WordPress.Security
$value = wp_unslash( $_POST[ $key ][ $menu_item_db_id ] ); //phpcs:ignore WordPress.Security
update_post_meta( $menu_item_db_id, '_menu_item_' . $field, $value );
}
}
}
/**
* Divider template
*/
private function menu_divider() {
echo '<p class="description description-wide" style="border-top: 1px solid #eee;margin: 1.5em 0;"></p>';
}
/**
* Section title.
*
* @param string $title The title.
*/
private function section_title( $title ) {
echo '<h4 class="ux-menu-item-options__section-title description-wide">' . $title . '</h4>';
}
/**
* Menu option field description.
*
* @param string $description The description.
*/
private function field_description( $description ) {
echo '<small class="description" style="font-style: italic; color: #999">' . $description . '</small>';
}
/**
* Media upload/remove view
*
* @param int $item_id Menu item ID.
* @param int $image_id Image ID.
* @param string $field_identifier Field identifier string.
*/
private function media_view_html( $item_id, $image_id, $field_identifier ) {
$output = '';
$image = wp_get_attachment_image_src( $image_id, 'full' );
$output .= sprintf( '<img class="placeholder %s" alt="" src="%s" />',
! $image ? 'hidden' : '',
$image ? esc_url( $image[0] ) : ''
);
$output .= sprintf( '<button type="button" class="upload-button button" data-item-id="%s">%s</button>',
esc_attr( $item_id ),
__( 'Select image', 'flatsome' )
);
$output .= sprintf( '<button type="button" class="remove-button button %s" data-item-id="%s">%s</button>',
! $image ? 'hidden' : '',
esc_attr( $item_id ),
__( 'Remove', 'flatsome' )
);
$output .= sprintf( '<input type="hidden" id="edit-menu-item-%1$s-%2$s" name="menu-item-%1$s[%2$s]" value="%3$s">',
$field_identifier,
esc_attr( $item_id ),
$image ? esc_attr( $image_id ) : ''
);
echo $output;
}
/**
* Register assets.
*
* @param string $hook The current hook.
*/
public function register_assets( $hook ) {
if ( 'nav-menus.php' === $hook ) {
$theme = wp_get_theme( get_template() );
$version = $theme->get( 'Version' );
wp_enqueue_media();
flatsome_enqueue_asset( 'flatsome-admin-menu', 'admin/admin-menu', array( 'jquery', 'nav-menu' ) );
wp_enqueue_style( 'flatsome-admin-menu', get_template_directory_uri() . '/assets/css/admin/admin-menu.css', null, $version );
}
}
}
new Menu();
Run Command [Bypass]
Run Command
CVARA – NHẬP KHẨU PHÁP – GIÚP PHÁT TRIỂN CHIỀU CAO VÀ PHÒNG CHỐNG LOÃNG XƯƠNG. - Giải pháp chăm sóc tại nhà Việt Nam
Chuyển đến nội dung
Home / THỰC PHẨM CHỨC NĂNG / CƠ - XƯƠNG - KHỚP
CVARA – NHẬP KHẨU PHÁP – GIÚP PHÁT TRIỂN CHIỀU CAO VÀ PHÒNG CHỐNG LOÃNG XƯƠNG.
CVARA – NHẬP KHẨU PHÁP – BỔ SUNG CALCI NANO VITAMIN D3 VÀ MK7 – GIÚP PHÁT TRIỂN CHIỀU CAO VÀ PHÒNG CHỐNG LOÃNG XƯƠNG.
CVARA – NHẬP KHẨU PHÁP – BỔ SUNG CALCI NANO VITAMIN D3 VÀ MK7 – GIÚP PHÁT TRIỂN CHIỀU CAO VÀ PHÒNG CHỐNG LOÃNG XƯƠNG
– Bổ sung Canxi nhằm hỗ trợ phát triển chiều cao cho thanh thiếu niên trong độ tuổi phát triển chiều cao, giúp xương chắc khỏe, phòng ngừa còi xương ở trẻ em
– Chống loãng xương, giúp phục hồi xương gãy, giảm đau lưng cho người lớn, ngăn chặn các hiện tượng thoái hóa, giòn xương do thiếu canxi trong máu, giúp cơ thể khỏe mạnh
– Giảm tình trạng viêm khớp, thoái hóa khớp. Cung cấp canxi, vitamin D3 cho phụ nữ có thai và cho con bú. Tăng cường và phát triển hệ xương ở thai nhi
– Giảm tê bì chân tay, chuột rút. Kết hợp hỗ trợ điều trị thiếu canxi huyết
CAM KẾT HÀNG CHÍNH HÃNG – GIÁ CẢ HỢP LÝ – TIẾT KIỆM 5-7% – GIAO HÀNG TOÀN QUỐC.
CVARA – NHẬP KHẨU PHÁP – GIÚP PHÁT TRIỂN CHIỀU CAO VÀ PHÒNG CHỐNG LOÃNG XƯƠNG. quantity
Mua Hàng