id_base);
print $args['before_widget'];
if ($title) {
print $args['before_title'] . $title . $args['after_title'];
}
global $post, $wp_query;
$original = $post;
$current_post = false;
if (azexo_get_closest_current_post('page')) {
$current_post = azexo_get_closest_current_post('page');
} else if (azexo_get_closest_current_post(array('vc_widget', 'azh_widget'), false)) {
$current_post = azexo_get_closest_current_post(array('vc_widget', 'azh_widget'), false);
}
if ($original->ID != $current_post->ID) {
$wp_query->post = $current_post;
wp_reset_postdata();
}
get_template_part('template-parts/general', 'title');
if ($original->ID != $current_post->ID) {
$wp_query->post = $original;
wp_reset_postdata();
}
print $args['after_widget'];
}
}
class AZEXO_Post extends WP_Widget {
public function __construct() {
parent::__construct('azexo_post', AZEXO_FRAMEWORK . ' - One post');
}
function widget($args, $instance) {
$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
print $args['before_widget'];
if ($title) {
print $args['before_title'] . $title . $args['after_title'];
}
if (!empty($instance['post'])) {
if ($instance['full'] == 'on') {
global $post, $wp_query;
$original = $post;
$current_post = get_post($instance['post']);
$wp_query->post = $current_post;
wp_reset_postdata();
$template_name = $instance['template'];
print '
' . azexo_get_post_wpb_css($instance['post']);
include(get_theme_file_path('content.php'));
print '
';
$wp_query->post = $original;
wp_reset_postdata();
} else {
print azexo_get_post_content($instance['post']);
}
} else {
if ($instance['full'] == 'on') {
$template_name = $instance['template'];
print '' . azexo_get_post_wpb_css();
include(get_theme_file_path('content.php'));
print '
';
} else {
print azexo_get_post_content();
}
}
print $args['after_widget'];
}
function update($new_instance, $old_instance) {
$instance = parent::update($new_instance, $old_instance);
$instance['full'] = $new_instance['full'];
return $instance;
}
function form($instance) {
$defaults = array('post' => '', 'title' => '', 'template' => 'widget_post', 'full' => 'off');
$instance = wp_parse_args((array) $instance, $defaults);
global $azexo_templates;
?>
id="get_field_id('full')); ?>" name="get_field_name('full')); ?>" />
'widget_categories', 'description' => esc_html__("A list or dropdown of categories.", 'azexo'));
parent::__construct('azexo_taxonomy', AZEXO_FRAMEWORK . ' - Taxonomy', $widget_ops);
}
public function widget($args, $instance) {
/** This filter is documented in wp-includes/default-widgets.php */
$title = apply_filters('widget_title', empty($instance['title']) ? esc_html__('Categories', 'azexo') : $instance['title'], $instance, $this->id_base);
$c = !empty($instance['count']) ? '1' : '0';
$h = !empty($instance['hierarchical']) ? '1' : '0';
$d = !empty($instance['dropdown']) ? '1' : '0';
print $args['before_widget'];
if ($title) {
print $args['before_title'] . $title . $args['after_title'];
}
$cat_args = array(
'class' => 'azexo-taxonomy-dropdown',
'orderby' => 'name',
'show_count' => $c,
'hierarchical' => $h,
'taxonomy' => $instance['taxonomy']
);
if ($d) {
static $first_dropdown = true;
$dropdown_id = ( $first_dropdown ) ? 'cat' : "{$this->id_base}-dropdown-{$this->number}";
$first_dropdown = false;
echo '';
$cat_args['show_option_none'] = esc_html__('Please select', 'azexo');
$cat_args['id'] = $dropdown_id;
/**
* Filter the arguments for the Categories widget drop-down.
*
* @since 2.8.0
*
* @see wp_dropdown_categories()
*
* @param array $cat_args An array of Categories widget drop-down arguments.
*/
wp_dropdown_categories(apply_filters('widget_categories_dropdown_args', $cat_args));
?>
'', 'taxonomy' => 'category'));
$title = esc_attr($instance['title']);
$count = isset($instance['count']) ? (bool) $instance['count'] : false;
$hierarchical = isset($instance['hierarchical']) ? (bool) $instance['hierarchical'] : false;
$dropdown = isset($instance['dropdown']) ? (bool) $instance['dropdown'] : false;
$taxonomies = get_taxonomies(array(), 'objects');
?>
/>
/>
/>
';
print '' . esc_html($link['title']) . '';
if (isset($link['children'])) {
print '';
$this->print_links($link['children']);
print '
';
}
print '';
}
}
static public function is_visible($instance) {
if (isset($instance['visible_if_active']) && $instance['visible_if_active']) {
return azexo_is_dashboard();
}
return true;
}
function widget($args, $instance) {
$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
print $args['before_widget'];
if ($title) {
print $args['before_title'] . $title . $args['after_title'];
}
print '';
$this->print_links(azexo_get_dashboard_links());
print '
';
print $args['after_widget'];
}
public function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['visible_if_active'] = !empty($new_instance['visible_if_active']) ? 1 : 0;
return $instance;
}
public function form($instance) {
//Defaults
$instance = wp_parse_args((array) $instance, array('title' => ''));
$title = esc_attr($instance['title']);
$visible_if_active = isset($instance['visible_if_active']) ? (bool) $instance['visible_if_active'] : false;
?>
/>
';
azexo_breadcrumb();
print '';
}
}
if (!is_admin() && !in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))) {
add_filter('widget_display_callback', 'azexo_filter_widget', 10, 2);
add_filter('sidebars_widgets', 'azexo_sidebars_widgets');
}
function azexo_sidebars_widgets($widget_areas) {
if (did_action('wp_loaded')) {
global $wp_widget_factory;
$settings = array();
foreach ($widget_areas as $widget_area => $widgets) {
if (empty($widgets)) {
continue;
}
if (!is_array($widgets)) {
continue;
}
if ('wp_inactive_widgets' == $widget_area) {
continue;
}
foreach ($widgets as $position => $widget_id) {
// Find the conditions for this widget.
if (preg_match('/^(.+?)-(\d+)$/', $widget_id, $matches)) {
$id_base = $matches[1];
$widget_number = intval($matches[2]);
} else {
$id_base = $widget_id;
$widget_number = null;
}
$wp_widget = null;
foreach ($wp_widget_factory->widgets as $widget_class => $widget_object) {
if ($widget_object->id_base == $id_base) {
$wp_widget = $widget_object;
}
}
if (!isset($settings[$id_base])) {
$settings[$id_base] = get_option('widget_' . $id_base);
}
// New multi widget (WP_Widget)
if (!is_null($widget_number)) {
if (isset($settings[$id_base][$widget_number]) && false === azexo_filter_widget($settings[$id_base][$widget_number], $wp_widget)) {
unset($widget_areas[$widget_area][$position]);
}
}
// Old single widget
else if (!empty($settings[$id_base]) && false === azexo_filter_widget($settings[$id_base], $wp_widget)) {
unset($widget_areas[$widget_area][$position]);
}
}
}
}
return $widget_areas;
}
global $azexo_widgets_visibility;
$azexo_widgets_visibility = array(
'show_on_dashboard' => esc_html__('Show only on dashboard', 'azexo'),
'hide_on_dashboard' => esc_html__('Hide on dashboard', 'azexo'),
'show_on_profiles_list' => esc_html__('Show only on profiles list', 'azexo'),
'hide_on_profiles_list' => esc_html__('Hide on profiles list', 'azexo'),
'show_on_shop' => esc_html__('Show only on shop', 'azexo'),
'hide_on_shop' => esc_html__('Hide on shop', 'azexo'),
);
function azexo_filter_widget($instance, $wp_widget) {
if ($instance) {
if (method_exists($wp_widget, 'is_visible')) {
return $wp_widget->is_visible($instance) ? $instance : false;
}
if (isset($instance['show_on_dashboard']) && $instance['show_on_dashboard']) {
if (!azexo_is_dashboard()) {
return false;
}
}
if (isset($instance['hide_on_dashboard']) && $instance['hide_on_dashboard']) {
if (azexo_is_dashboard()) {
return false;
}
}
global $wp_query;
if (isset($instance['show_on_profiles_list']) && $instance['show_on_profiles_list']) {
if (basename(get_page_template()) != 'profiles.php' && basename(get_page_template()) != 'vendors-profiles.php' && !azexo_is_post_type_query($wp_query, 'azl_profile')) {
return false;
}
}
if (isset($instance['hide_on_profiles_list']) && $instance['hide_on_profiles_list']) {
if (basename(get_page_template()) == 'profiles.php' || basename(get_page_template()) == 'vendors-profiles.php' || azexo_is_post_type_query($wp_query, 'azl_profile')) {
return false;
}
}
if (isset($instance['show_on_shop']) && $instance['show_on_shop']) {
if (function_exists('is_shop') && !is_shop()) {
return false;
}
}
if (isset($instance['hide_on_shop']) && $instance['hide_on_shop']) {
if (function_exists('is_shop') && is_shop()) {
return false;
}
}
}
return $instance;
}
add_action('in_widget_form', 'azexo_in_widget_form', 10, 3);
function azexo_in_widget_form($widget, $return, $instance) {
global $azexo_widgets_visibility;
print '';
foreach ($azexo_widgets_visibility as $field => $title) {
$value = isset($instance[$field]) ? (bool) $instance[$field] : false;
?>
/>
';
}
add_filter('widget_update_callback', 'azexo_widget_update_callback', 10, 3);
function azexo_widget_update_callback($instance, $new_instance, $old_instance) {
global $azexo_widgets_visibility;
foreach ($azexo_widgets_visibility as $field => $title) {
$instance[$field] = !empty($new_instance[$field]) ? 1 : 0;
}
return $instance;
}