feat(widgets): reviews/pricing/announce empty + identity lazy avatars
Admin null states for reviews/pricing/announcement; lazyload avatars and covers on about/author/user cards and review slides.
This commit is contained in:
@@ -61,12 +61,12 @@ class AboutWidget extends \WP_Widget {
|
||||
?>
|
||||
<div class="aksrt-user-card">
|
||||
<div class="aksrt-user-card__cover" style="padding-bottom: 50%;">
|
||||
<img class="aksrt-user-card__cover-img" src="<?php echo esc_url($cover); ?>" alt=""<?php echo function_exists('aksrt_lazy_loading') ? aksrt_lazy_loading('widget') : ' loading="lazy"'; ?>>
|
||||
<img class="aksrt-user-card__cover-img aksrt-lazy lazyload" data-src="<?php echo esc_url($cover); ?>" src="<?php echo esc_url(get_template_directory_uri() . '/assets/img/placeholder.svg'); ?>" alt="" loading="lazy">
|
||||
</div>
|
||||
|
||||
<div class="aksrt-user-card__content">
|
||||
<div class="aksrt-user-card__avatar">
|
||||
<img src="<?php echo esc_url($avatar); ?>" alt="" width="80" height="80"<?php echo function_exists('aksrt_lazy_loading') ? aksrt_lazy_loading('avatar') : ' loading="lazy"'; ?>>
|
||||
<img class="aksrt-lazy lazyload" data-src="<?php echo esc_url($avatar); ?>" src="<?php echo esc_url(get_template_directory_uri() . '/assets/img/placeholder.svg'); ?>" alt="" width="80" height="80" loading="lazy">
|
||||
</div>
|
||||
|
||||
<div class="aksrt-user-card__info">
|
||||
@@ -111,13 +111,13 @@ class AboutWidget extends \WP_Widget {
|
||||
<div class="aksrt-user-card">
|
||||
<div class="aksrt-user-card__cover" style="padding-bottom: 50%;">
|
||||
<?php if ($cover) : ?>
|
||||
<img class="aksrt-user-card__cover-img" src="<?php echo esc_url($cover); ?>" alt=""<?php echo function_exists('aksrt_lazy_loading') ? aksrt_lazy_loading('widget') : ' loading="lazy"'; ?>>
|
||||
<img class="aksrt-user-card__cover-img aksrt-lazy lazyload" data-src="<?php echo esc_url($cover); ?>" src="<?php echo esc_url(get_template_directory_uri() . '/assets/img/placeholder.svg'); ?>" alt="" loading="lazy">
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div class="aksrt-user-card__content">
|
||||
<div class="aksrt-user-card__avatar">
|
||||
<img src="<?php echo esc_url($avatar); ?>" alt="" width="80" height="80"<?php echo function_exists('aksrt_lazy_loading') ? aksrt_lazy_loading('avatar') : ' loading="lazy"'; ?>>
|
||||
<img class="aksrt-lazy lazyload" data-src="<?php echo esc_url($avatar); ?>" src="<?php echo esc_url(get_template_directory_uri() . '/assets/img/placeholder.svg'); ?>" alt="" width="80" height="80" loading="lazy">
|
||||
</div>
|
||||
|
||||
<div class="aksrt-user-card__info">
|
||||
|
||||
@@ -40,6 +40,13 @@ class WidgetAnnouncement extends \WP_Widget {
|
||||
|
||||
$lines = array_values(array_filter(array_map('trim', explode("\n", $items))));
|
||||
if (!$lines) {
|
||||
if (current_user_can('manage_options')) {
|
||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
echo function_exists('aksrt_get_widget_null')
|
||||
? aksrt_get_widget_null(__('请添加至少一条公告', 'aksrt')) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
: '<p class="widget-empty">' . esc_html__('请添加至少一条公告', 'aksrt') . '</p>';
|
||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -97,7 +97,8 @@ class WidgetAuthorCard extends \WP_Widget {
|
||||
}
|
||||
echo '<div class="aksrt-author-card__body card-content">';
|
||||
echo '<div class="user-content">';
|
||||
echo '<a class="aksrt-author-card__avatar user-avatar" href="' . esc_url($home) . '"><img class="avatar" src="' . esc_url($avatar) . '" alt="" width="72" height="72" loading="lazy" /></a>';
|
||||
$ph = get_template_directory_uri() . '/assets/img/placeholder.svg';
|
||||
echo '<a class="aksrt-author-card__avatar user-avatar" href="' . esc_url($home) . '"><img class="avatar aksrt-lazy lazyload" data-src="' . esc_url($avatar) . '" src="' . esc_url($ph) . '" alt="" width="72" height="72" loading="lazy" /></a>';
|
||||
echo '<div class="aksrt-author-card__name user-name">' . $name_html . '</div>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
if ($bio !== '') {
|
||||
echo '<div class="aksrt-author-card__bio user-desc muted-2-color em09">' . esc_html(wp_trim_words($bio, 28)) . '</div>';
|
||||
|
||||
@@ -25,6 +25,13 @@ class WidgetPricingPlans extends \WP_Widget {
|
||||
public function widget($args, $instance): void {
|
||||
$plans = $this->normalize_plans($instance['lists'] ?? $instance['plans'] ?? []);
|
||||
if (!$plans) {
|
||||
if (current_user_can('manage_options')) {
|
||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
echo function_exists('aksrt_get_widget_null')
|
||||
? aksrt_get_widget_null(__('请配置至少一个价格方案', 'aksrt')) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
: '<p class="widget-empty">' . esc_html__('请配置至少一个价格方案', 'aksrt') . '</p>';
|
||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
}
|
||||
return;
|
||||
}
|
||||
$trust = $this->normalize_trust($instance['trust_items'] ?? []);
|
||||
|
||||
@@ -25,6 +25,13 @@ class WidgetReviews extends \WP_Widget {
|
||||
public function widget($args, $instance): void {
|
||||
$reviews = $this->normalize($instance['reviews'] ?? []);
|
||||
if (!$reviews) {
|
||||
if (current_user_can('manage_options')) {
|
||||
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
echo function_exists('aksrt_get_widget_null')
|
||||
? aksrt_get_widget_null(__('请添加至少一条评价', 'aksrt')) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
: '<p class="widget-empty">' . esc_html__('请添加至少一条评价', 'aksrt') . '</p>';
|
||||
echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
}
|
||||
return;
|
||||
}
|
||||
$pc = max(1, min(6, (float) ($instance['desktop_per_view'] ?? 3)));
|
||||
@@ -44,7 +51,8 @@ class WidgetReviews extends \WP_Widget {
|
||||
echo '<div class="swiper-slide aksrt-reviews__slide"><div class="aksrt-reviews__card" data-aksrt-tilt data-tilt-max="8">';
|
||||
echo '<div class="aksrt-reviews__head">';
|
||||
if ($r['avatar'] !== '') {
|
||||
echo '<img class="aksrt-reviews__avatar" src="' . esc_url($r['avatar']) . '" alt="" loading="lazy" width="44" height="44" />';
|
||||
$ph = get_template_directory_uri() . '/assets/img/placeholder.svg';
|
||||
echo '<img class="aksrt-reviews__avatar aksrt-lazy lazyload" data-src="' . esc_url($r['avatar']) . '" src="' . esc_url($ph) . '" alt="" loading="lazy" width="44" height="44" />';
|
||||
} else {
|
||||
echo '<span class="aksrt-reviews__avatar is-placeholder"><i class="fa fa-user" aria-hidden="true"></i></span>';
|
||||
}
|
||||
|
||||
@@ -130,7 +130,8 @@ class WidgetUserCard extends \WP_Widget {
|
||||
}
|
||||
}
|
||||
echo '<div class="aksrt-user-card__avatar user-avatar">';
|
||||
echo '<a href="' . esc_url($profile_url) . '"><img src="' . esc_url($avatar_url) . '" alt="' . esc_attr($user->display_name) . '" loading="lazy" width="72" height="72" /></a>';
|
||||
$ph = get_template_directory_uri() . '/assets/img/placeholder.svg';
|
||||
echo '<a href="' . esc_url($profile_url) . '"><img class="aksrt-lazy lazyload" data-src="' . esc_url($avatar_url) . '" src="' . esc_url($ph) . '" alt="' . esc_attr($user->display_name) . '" loading="lazy" width="72" height="72" /></a>';
|
||||
echo '</div>';
|
||||
echo '<h4 class="aksrt-user-card__name user-name">' . $name_html . '</h4>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
||||
if ($bio !== '') {
|
||||
|
||||
Reference in New Issue
Block a user