@@ -702,42 +702,154 @@ class="fz-switch-toggle" type="checkbox" value="yes"
702
702
<div class="form-block form-block-two-column <?php echo esc_attr ( apply_filters ( 'feedzy_upsell_class ' , '' ) ); ?> ">
703
703
<?php echo wp_kses_post ( apply_filters ( 'feedzy_upsell_content ' , '' , 'fallback-image ' , 'import ' ) ); ?>
704
704
<div class="fz-left">
705
- <h4 class="h4"><?php esc_html_e ( 'Fallback Image ' , 'feedzy-rss-feeds ' ); ?> <?php echo ! feedzy_is_pro () ? ' <span class="pro-label">PRO</span> ' : '' ; ?> </h4>
705
+ <h4 class="h4">
706
+ <?php esc_html_e ( 'Fallback Image ' , 'feedzy-rss-feeds ' ); ?> <?php echo ! feedzy_is_pro () ? ' <span class="pro-label">PRO</span> ' : '' ; ?>
707
+ </h4>
706
708
</div>
707
709
<div class="fz-right">
708
710
<div class="fz-form-group">
709
- <label class="form-label"><?php esc_html_e ( 'Select an image to be the fallback featured image. ' , 'feedzy-rss-feeds ' ); ?> </label>
710
- <?php
711
- $ btn_label = esc_html__ ( 'Choose image ' , 'feedzy-rss-feeds ' );
712
- $ default_thumbnail_id = ! empty ( $ default_thumbnail_id ) ? explode ( ', ' , (string ) $ default_thumbnail_id ) : array ();
713
- if ( ! empty ( $ default_thumbnail_id ) ) :
714
- $ btn_label = esc_html__ ( 'Replace image ' , 'feedzy-rss-feeds ' );
715
- ?>
716
- <div class="fz-form-group mb-20 feedzy-media-preview">
717
- <?php
718
- if ( count ( $ default_thumbnail_id ) > 1 ) {
711
+ <div class="form-label">
712
+ <?php esc_html_e ( 'Which fallback featured image should be used for this feed? ' , 'feedzy-rss-feeds ' ); ?>
713
+ </div>
714
+
715
+ <?php
716
+ $ fallback_option = ! empty ( $ default_thumbnail_id ) ? 'custom ' : 'general ' ;
717
+ ?>
718
+
719
+ <div class="fz-spacing">
720
+ <input
721
+ type="radio"
722
+ id="use-general-fallback"
723
+ name="feedzy_meta_data[fallback_image_option]"
724
+ value="general"
725
+ <?php checked ( $ fallback_option , 'general ' ); ?>
726
+ >
727
+ <label for="use-general-fallback" class="fz-radio-label">
728
+ <strong class="fz-radio-title">
729
+ <?php esc_html_e ( 'Use general setting ' , 'feedzy-rss-feeds ' ); ?>
730
+ </strong>
731
+ <br>
732
+ <span class="fz-radio-description">
733
+ <?php esc_html_e ( 'Updates automatically when the general fallback image changes. ' , 'feedzy-rss-feeds ' ); ?>
734
+ </span>
735
+ </label>
736
+ </div>
737
+
738
+ <div
739
+ id="general-fallback-preview"
740
+ class="fz-spacing"
741
+ style="<?php echo 'general ' === $ fallback_option ? '' : 'display: none; ' ; ?> "
742
+ >
743
+ <?php if ( ! empty ( $ inherited_thumbnail_id ) ) : ?>
744
+ <div class="fz-form-group">
745
+ <?php
746
+ $ image = wp_get_attachment_image ( $ inherited_thumbnail_id , 'thumbnail ' );
747
+ if ( $ image ) {
748
+ echo wp_kses_post ( $ image );
749
+ } else {
750
+ echo '<div class="help-text"> ' . esc_html__ ( 'General fallback image not found (may have been deleted) ' , 'feedzy-rss-feeds ' ) . '</div> ' ;
751
+ }
719
752
?>
720
- <a href="javascript:;" class="btn btn-outline-primary feedzy-images-selected">
721
- <?php
722
- // translators: %d select images count.
723
- echo esc_html ( sprintf ( __ ( '(%d) images selected ' , 'feedzy-rss-feeds ' ), count ( $ default_thumbnail_id ) ) );
753
+ </div>
754
+ <?php else : ?>
755
+ <div class="fz-form-group mb-20">
756
+ <div class="help-text">
757
+ <?php
758
+ echo wp_kses_post (
759
+ __ ( 'No general fallback image set. ' , 'feedzy-rss-feeds ' )
760
+ );
724
761
?>
725
- </a>
726
- <?php
727
- } else {
728
- echo wp_get_attachment_image ( reset ( $ default_thumbnail_id ), 'thumbnail ' );
729
- }
762
+ </div>
763
+ </div>
764
+ <?php endif ; ?>
765
+
766
+ <div class="help-text pt-8">
767
+ <?php
768
+ echo wp_kses_post (
769
+ sprintf (
770
+ /* translators: %s is replaced with a link to the Feedzy Settings page */
771
+ __ ( 'You can update the general fallback image in %s. ' , 'feedzy-rss-feeds ' ),
772
+ '<a href=" ' . esc_url ( admin_url ( 'admin.php?page=feedzy-settings ' ) ) . '" target="_blank"> ' . esc_html__ ( 'Feedzy Settings ' , 'feedzy-rss-feeds ' ) . '</a> '
773
+ )
774
+ );
730
775
?>
731
776
</div>
732
- <?php endif ; ?>
733
- <div class="fz-cta-group pb-8">
734
- <a href="javascript:;" class="feedzy-open-media btn btn-outline-primary"><?php echo esc_html ( $ btn_label ); ?> </a>
735
- <a href="javascript:;" class="feedzy-remove-media btn btn-outline-primary <?php echo ! empty ( $ default_thumbnail_id ) ? esc_attr ( 'is-show ' ) : '' ; ?> "><?php esc_html_e ( 'Remove ' , 'feedzy-rss-feeds ' ); ?> </a>
736
- <input type="hidden" name="feedzy_meta_data[default_thumbnail_id]" id="feed-post-default-thumbnail" value="<?php echo esc_attr ( implode ( ', ' , $ default_thumbnail_id ) ); ?> ">
737
777
</div>
738
- <div class="help-text pt-8">
739
- <?php esc_html_e ( 'Helpful for setting a fallback image for feed items without an image. If multiple fallback images are selected, one of them will be randomly assigned to each post without an image during the import process. ' , 'feedzy-rss-feeds ' ); ?>
778
+
779
+ <div class="fz-spacing">
780
+ <input
781
+ type="radio"
782
+ id="use-custom-fallback"
783
+ name="feedzy_meta_data[fallback_image_option]"
784
+ value="custom"
785
+ <?php checked ( $ fallback_option , 'custom ' ); ?>
786
+ >
787
+ <label for="use-custom-fallback" class="fz-radio-label">
788
+ <strong class="fz-radio-title">
789
+ <?php esc_html_e ( 'Add custom fallback image ' , 'feedzy-rss-feeds ' ); ?>
790
+ </strong>
791
+ <br>
792
+ <span class="fz-radio-description small">
793
+ <?php esc_html_e ( 'Use a specific image just for this feed. ' , 'feedzy-rss-feeds ' ); ?>
794
+ </span>
795
+ </label>
740
796
</div>
797
+
798
+ <div
799
+ id="custom-fallback-section"
800
+ style="<?php echo 'custom ' === $ fallback_option ? '' : 'display: none; ' ; ?> "
801
+ >
802
+ <?php
803
+ $ btn_label = esc_html__ ( 'Choose image ' , 'feedzy-rss-feeds ' );
804
+ $ saved_fallback_thumbnail_ids = is_string ( $ default_thumbnail_id ) ? explode ( ', ' , $ default_thumbnail_id ) : array ();
805
+ $ valid_thumbnail_ids = array_filter ( $ saved_fallback_thumbnail_ids , 'is_numeric ' );
806
+ $ valid_thumbnail_ids = array_filter (
807
+ $ valid_thumbnail_ids ,
808
+ function ( $ id ) {
809
+ return wp_attachment_is_image ( intval ( $ id ) );
810
+ }
811
+ );
812
+
813
+ if ( ! empty ( $ valid_thumbnail_ids ) ) :
814
+ $ btn_label = esc_html__ ( 'Replace image ' , 'feedzy-rss-feeds ' );
815
+ ?>
816
+ <div class="fz-form-group feedzy-media-preview ">
817
+ <div class="fz-fallback-images">
818
+ <?php
819
+ foreach ( $ valid_thumbnail_ids as $ thumbnail_id ) {
820
+ echo wp_get_attachment_image ( $ thumbnail_id , 'thumbnail ' );
821
+ }
822
+ ?>
823
+ </div>
824
+ </div>
825
+ <?php endif ; ?>
826
+
827
+ <div class="fz-cta-group pb-8">
828
+ <a
829
+ href="javascript:;"
830
+ class="feedzy-open-media btn btn-outline-primary"
831
+ >
832
+ <?php
833
+ echo esc_html ( $ btn_label );
834
+ ?>
835
+ </a>
836
+ <a
837
+ href="javascript:;"
838
+ class="feedzy-remove-media btn btn-outline-primary <?php echo ! empty ( $ valid_thumbnail_ids ) ? esc_attr ( 'is-show ' ) : '' ; ?> "
839
+ >
840
+ <?php esc_html_e ( 'Remove ' , 'feedzy-rss-feeds ' ); ?>
841
+ </a>
842
+ <input
843
+ type="hidden"
844
+ name="feedzy_meta_data[default_thumbnail_id]"
845
+ id="feed-post-default-thumbnail"
846
+ value="<?php echo esc_attr ( implode ( ', ' , $ valid_thumbnail_ids ) ); ?> "
847
+ >
848
+ </div>
849
+ </div>
850
+ </div>
851
+ <div class="help-text pt-8">
852
+ <?php esc_html_e ( 'Helpful for setting a fallback image for feed items without an image during the import process. ' , 'feedzy-rss-feeds ' ); ?>
741
853
</div>
742
854
</div>
743
855
</div>
@@ -748,15 +860,22 @@ class="fz-switch-toggle" type="checkbox" value="yes"
748
860
749
861
<div class="form-block form-block-two-column no-border">
750
862
<div class="fz-left">
751
- <h4 class="h4"><?php esc_html_e ( 'Remove Duplicates ' , 'feedzy-rss-feeds ' ); ?> </h4>
863
+ <h4 class="h4">
864
+ <?php esc_html_e ( 'Remove Duplicates ' , 'feedzy-rss-feeds ' ); ?>
865
+ </h4>
752
866
</div>
753
867
<div class="fz-right">
754
868
<div class="fz-form-group">
755
869
<div class="fz-form-switch">
756
- <input id="remove-duplicates" name="feedzy_meta_data[import_remove_duplicates]"
757
- class="fz-switch-toggle" type="checkbox" value="yes"
758
- <?php echo esc_attr ( $ import_remove_duplicates ); ?> >
759
- <label class="feedzy-inline form-label" for="remove-duplicates"><?php esc_html_e ( 'Remove Duplicate Items ' , 'feedzy-rss-feeds ' ); ?> </label>
870
+ <input
871
+ id="remove-duplicates"
872
+ name="feedzy_meta_data[import_remove_duplicates]"
873
+ class="fz-switch-toggle" type="checkbox" value="yes"
874
+ <?php echo esc_attr ( $ import_remove_duplicates ); ?>
875
+ >
876
+ <label class="feedzy-inline form-label" for="remove-duplicates">
877
+ <?php esc_html_e ( 'Remove Duplicate Items ' , 'feedzy-rss-feeds ' ); ?>
878
+ </label>
760
879
</div>
761
880
</div>
762
881
<div class="help-text">
0 commit comments