💥 TRENDING: Changeset/ - Full Archive

Changeset 3347125


Ignore:
Timestamp:
08/19/2025 03:48:13 PM (4 months ago)
Author:
blobaugh
Message:

v2.4.7

Location:
simple-feature-requests/trunk
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • simple-feature-requests/trunk/assets/frontend/css/main.css

    r3128855 r3347125  
    955955  z-index: 99999;
    956956}
     957
     958/**
     959 * ACF Fields
     960 */
     961.sfr-form__acf-fields {
     962  margin: 20px 0;
     963  padding: 20px;
     964  background: #f9f9f9;
     965  border-radius: 4px;
     966  border: 1px solid #e1e1e1;
     967}
     968
     969.sfr-form__acf-fields h3 {
     970  margin: 0 0 15px 0;
     971  font-size: 16px;
     972  color: #333;
     973}
     974
     975.sfr-form__acf-fields .sfr-form__row {
     976  margin-bottom: 15px;
     977}
     978
     979.sfr-form__acf-fields .sfr-form__row:last-child {
     980  margin-bottom: 0;
     981}
     982
     983.sfr-form__acf-fields .sfr-form__field {
     984  width: 100%;
     985  padding: 8px 12px;
     986  border: 1px solid #ddd;
     987  border-radius: 4px;
     988  font-size: 14px;
     989  line-height: 1.4;
     990}
     991
     992.sfr-form__acf-fields .sfr-form__field:focus {
     993  outline: none;
     994  border-color: #0073aa;
     995  box-shadow: 0 0 0 1px #0073aa;
     996}
     997
     998.sfr-form__acf-fields .sfr-form__field--textarea {
     999  min-height: 100px;
     1000  resize: vertical;
     1001}
     1002
     1003.sfr-form__acf-fields .sfr-form__field--select {
     1004  background: white;
     1005}
     1006
     1007.sfr-form__acf-fields .sfr-form__checkbox,
     1008.sfr-form__acf-fields .sfr-form__radio {
     1009  display: flex;
     1010  align-items: center;
     1011  margin-bottom: 8px;
     1012  cursor: pointer;
     1013}
     1014
     1015.sfr-form__acf-fields .sfr-form__checkbox input,
     1016.sfr-form__acf-fields .sfr-form__radio input {
     1017  margin-right: 8px;
     1018  width: auto;
     1019}
     1020
     1021.sfr-form__acf-fields .sfr-form__checkbox span,
     1022.sfr-form__acf-fields .sfr-form__radio span {
     1023  font-weight: normal;
     1024}
     1025
     1026.sfr-form__acf-fields .required {
     1027  color: #dc3232;
     1028  font-weight: bold;
     1029}
     1030
     1031/* ACF Fields Display on Single Pages */
     1032.sfr-acf-fields {
     1033  margin: 20px 0;
     1034  padding: 15px;
     1035  background: #f9f9f9;
     1036  border-radius: 4px;
     1037  border: 1px solid #e1e1e1;
     1038}
     1039
     1040.sfr-acf-fields h3 {
     1041  margin: 0 0 15px 0;
     1042  font-size: 16px;
     1043  color: #333;
     1044  border-bottom: 1px solid #e1e1e1;
     1045  padding-bottom: 8px;
     1046}
     1047
     1048.sfr-acf-field {
     1049  margin-bottom: 10px;
     1050  padding: 8px 0;
     1051  border-bottom: 1px solid #f0f0f0;
     1052}
     1053
     1054.sfr-acf-field:last-child {
     1055  margin-bottom: 0;
     1056  border-bottom: none;
     1057}
     1058
     1059.sfr-acf-field strong {
     1060  color: #333;
     1061  font-weight: 600;
     1062}
     1063
     1064.sfr-acf-field span {
     1065  color: #666;
     1066  margin-left: 5px;
     1067}
     1068
     1069/* ACF Fields Table Layout */
     1070.sfr-acf-fields-table {
     1071  width: 100%;
     1072  border-collapse: collapse;
     1073  margin: 15px 0;
     1074}
     1075
     1076.sfr-acf-fields-table .sfr-acf-field-row {
     1077  border-bottom: 1px solid #eee;
     1078}
     1079
     1080.sfr-acf-fields-table .sfr-acf-field-row:last-child {
     1081  border-bottom: none;
     1082}
     1083
     1084.sfr-acf-fields-table .sfr-acf-field-label {
     1085  padding: 12px 15px 12px 0;
     1086  vertical-align: top;
     1087  font-weight: 600;
     1088  color: #333;
     1089  text-align: left;
     1090  line-height: 1.4;
     1091}
     1092
     1093.sfr-acf-fields .sfr-acf-field-label {
     1094  display: inline-block;
     1095  vertical-align: top;
     1096}
     1097
     1098.sfr-acf-fields-table .sfr-acf-field-value {
     1099  padding: 12px 0;
     1100  vertical-align: top;
     1101}
     1102
     1103.sfr-acf-fields-table .sfr-acf-field-value span {
     1104  color: #666;
     1105  line-height: 1.5;
     1106}
     1107
     1108.sfr-acf-fields-table .sfr-acf-textarea {
     1109  color: #666;
     1110  line-height: 1.6;
     1111  white-space: pre-line;
     1112}
     1113
     1114/* Responsive table */
     1115@media (max-width: 768px) {
     1116  .sfr-acf-fields-table {
     1117    display: block;
     1118  }
     1119 
     1120  .sfr-acf-fields-table .sfr-acf-field-row {
     1121    display: block;
     1122    margin-bottom: 15px;
     1123    padding-bottom: 15px;
     1124    border-bottom: 1px solid #eee;
     1125  }
     1126 
     1127  .sfr-acf-fields-table .sfr-acf-field-label,
     1128  .sfr-acf-fields-table .sfr-acf-field-value {
     1129    display: block;
     1130    width: 100%;
     1131    padding: 5px 0;
     1132  }
     1133 
     1134  .sfr-acf-fields-table .sfr-acf-field-label {
     1135    padding-bottom: 5px;
     1136  }
     1137}
  • simple-feature-requests/trunk/inc/admin/php-check.php

    r3276866 r3347125  
    2121        } else if (version_compare(phpversion(), '8.0', '>=') && version_compare(phpversion(), '8.1', '<')) { // PHP 8.0
    2222            add_action('admin_notices', [$this, 'php80_notice']);
    23         } else if ((version_compare(phpversion(), '8.1', '>=') && version_compare(phpversion(), '8.2', '<')) && (new DateTime() >= (new DateTime('2025-12-31'))->modify('-1 month'))) { // PHP 8.1 - 1 month before EOL
     23        } else if ((version_compare(phpversion(), '8.1', '>=') && version_compare(phpversion(), '8.2', '<')) && (new DateTime() >= (new DateTime('2025-12-31'))->modify('-6 months'))) { // PHP 8.1 - 1 month before EOL
    2424            add_action('admin_notices', [$this, 'php81_notice']);
    25         } else if ((version_compare(phpversion(), '8.2', '>=') && version_compare(phpversion(), '8.3', '<')) && (new DateTime() >= (new DateTime('2026-12-31'))->modify('-1 month'))) { // PHP 8.2 - 1 month before EOL
     25        } else if ((version_compare(phpversion(), '8.2', '>=') && version_compare(phpversion(), '8.3', '<')) && (new DateTime() >= (new DateTime('2026-12-31'))->modify('-6 months'))) { // PHP 8.2 - 1 month before EOL
    2626            add_action('admin_notices', [$this, 'php82_notice']);
    27         } else if ((version_compare(phpversion(), '8.3', '>=') && version_compare(phpversion(), '8.4', '<')) && (new DateTime() >= (new DateTime('2027-12-31'))->modify('-1 month'))) { // PHP 8.3 - 1 month before EOL
     27        } else if ((version_compare(phpversion(), '8.3', '>=') && version_compare(phpversion(), '8.4', '<')) && (new DateTime() >= (new DateTime('2027-12-31'))->modify('-6 months'))) { // PHP 8.3 - 1 month before EOL
    2828            add_action('admin_notices', [$this, 'php83_notice']);
    29         } else if ((version_compare(phpversion(), '8.4', '>=') && version_compare(phpversion(), '8.5', '<')) && (new DateTime() >= (new DateTime('2028-12-31'))->modify('-1 month'))) { // PHP 8.4 - 1 month before EOL
     29        } else if ((version_compare(phpversion(), '8.4', '>=') && version_compare(phpversion(), '8.5', '<')) && (new DateTime() >= (new DateTime('2028-12-31'))->modify('-6 months'))) { // PHP 8.4 - 1 month before EOL
    3030            add_action('admin_notices', [$this, 'php84_notice']);
    3131        }
     
    5555?>
    5656        <div class="notice notice-error">
    57             <p><?php _e('Important Notice: THIS PHP VERSION IS NOT SUPPORTED and no longer receives security updates, we strongly recommend upgrading to a supported version to ensure continued stability and security.', 'simple-feature-requests'); ?></p>
     57            <p><?php _e('Important Notice: THIS PHP VERSION IS NOT SUPPORTED and no longer receives security updates. Proper operation of this plugin cannot be guaranteed. See <a href="https://www.php.net/supported-versions.php" target="_blank">PHP Supported Versions</a> for more information.', 'simple-feature-requests'); ?></p>
    5858        </div>
    5959    <?php
     
    6464    ?>
    6565        <div class="notice notice-error">
    66             <p><?php _e('Important Notice: Support for PHP 7.4 will be deprecated in an upcoming release. As PHP 7.4 has reached end-of-life on Nov 28, 2022 and no longer receives security updates, we strongly recommend upgrading to a supported version to ensure continued stability and security.', 'simple-feature-requests'); ?></p>
     66            <p><?php _e('Important Notice: Support for PHP 7.4 reached end-of-life on Nov 28, 2022 and is no longer supported. Compatibility with unsupported PHP versions will be removed in January 2026. See <a href="https://www.php.net/supported-versions.php" target="_blank">PHP Supported Versions</a> for more information.', 'simple-feature-requests'); ?></p>
    6767        </div>
    6868    <?php
     
    7373    ?>
    7474        <div class="notice notice-error">
    75             <p><?php _e('Important Notice: Support for PHP 8.0 will be deprecated in an upcoming release. As PHP 8.0 has reached end-of-life on Nov 26, 2023 and no longer receives security updates, we strongly recommend upgrading to a supported version to ensure continued stability and security.', 'simple-feature-requests'); ?></p>
     75            <p><?php _e('Important Notice: Support for PHP 8.0 reached end-of-life on Nov 26, 2023 and is no longer supported. Compatibility with unsupported PHP versions will be removed in January 2026. See <a href="https://www.php.net/supported-versions.php" target="_blank">PHP Supported Versions</a> for more information.', 'simple-feature-requests'); ?></p>
    7676        </div>
    7777    <?php
     
    8686    ?>
    8787        <div class="notice notice-error">
    88             <p><?php _e('Important Notice: Support for PHP 8.1 ' . $ends . ' on Dec 31, 2025 and will be deprecated in an upcoming release. As PHP 8.1 has reached end-of-life and no longer receives security updates, we strongly recommend upgrading to a supported version to ensure continued stability and security.', 'simple-feature-requests'); ?></p>
     88            <p><?php _e('Important Notice: Support for PHP 8.1 ' . $ends . ' on Dec 31, 2025. Compatibility with unsupported PHP versions will be removed starting in January 2026. See <a href="https://www.php.net/supported-versions.php" target="_blank">PHP Supported Versions</a> for more information.', 'simple-feature-requests'); ?></p>
    8989        </div>
    9090    <?php
  • simple-feature-requests/trunk/inc/class-assets.php

    r3128855 r3347125  
    2626            return;
    2727        }
    28         $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min' );
     28        //$suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
     29        $suffix = '';
    2930        wp_enqueue_script(
    3031            'sfr-main',
  • simple-feature-requests/trunk/inc/class-post-types.php

    r3292092 r3347125  
    145145    public static function add( $options ) {
    146146        $defaults = array(
    147             "plural"              => "",
    148             "singular"            => "",
    149             "key"                 => false,
    150             "rewrite_slug"        => false,
    151             "rewrite_with_front"  => false,
    152             "rewrite_feeds"       => true,
    153             "rewrite_pages"       => true,
    154             "menu_icon"           => "dashicons-admin-post",
     147            'plural'              => '',
     148            'singular'            => '',
     149            'key'                 => false,
     150            'rewrite_slug'        => false,
     151            'rewrite_with_front'  => false,
     152            'rewrite_feeds'       => true,
     153            'rewrite_pages'       => true,
     154            'menu_icon'           => 'dashicons-admin-post',
    155155            'hierarchical'        => false,
    156156            'supports'            => array('title'),
     
    206206        if ( $options['rewrite_slug'] ) {
    207207            $args['rewrite'] = array(
    208                 "slug"       => $options['rewrite_slug'],
    209                 "with_front" => $options['rewrite_with_front'],
    210                 "feeds"      => $options['rewrite_feeds'],
    211                 "pages"      => $options['rewrite_pages'],
     208                'slug'       => $options['rewrite_slug'],
     209                'with_front' => $options['rewrite_with_front'],
     210                'feeds'      => $options['rewrite_feeds'],
     211                'pages'      => $options['rewrite_pages'],
    212212            );
    213213        }
     
    755755    /**
    756756     * Get single request title tag
    757      * 
     757     *
    758758     * @return string
    759759     */
     
    768768    /**
    769769     * Get archive request title tag
    770      * 
     770     *
    771771     * @return string
    772772     */
     
    781781    /**
    782782     * Check if we should hide default theme entry title on single request view
    783      * 
     783     *
    784784     * @return bool
    785785     */
     
    954954            echo $attachment_id;
    955955            ?>">
    956                     <?php
     956                    <a href="<?php
     957            echo wp_get_attachment_url( $attachment_id );
     958            ?>" target="_blank">
     959                        <?php
    957960            echo wp_get_attachment_image( $attachment_id, 'thumbnail' );
    958961            ?>
     962                    </a>
    959963                    <a hre="#" class="sfr-remove_attachment"></a>
    960964                </li>
  • simple-feature-requests/trunk/inc/class-template-hooks.php

    r3128855 r3347125  
    119119
    120120    /**
    121      * Include template.
    122      *
    123      * @param string $name
    124      * @param array  $args
     121     * Include a template file with theme override support.
     122     *
     123     * This method follows WordPress's template hierarchy to allow theme developers
     124     * to override plugin templates. The priority order is:
     125     * 1. Child theme template
     126     * 2. Parent theme template
     127     * 3. Plugin default template
     128     *
     129     * Theme developers can override templates by creating files in their theme
     130     * directory structure:
     131     *
     132     * <code>
     133     * wp-content/themes/your-theme/
     134     * └── simple-feature-requests/
     135     *     ├── loop/
     136     *     │   ├── content.php
     137     *     │   └── no-requests-found.php
     138     *     ├── archive/
     139     *     │   ├── submission-form.php
     140     *     │   └── filters.php
     141     *     ├── sidebar/
     142     *     │   ├── login.php
     143     *     │   └── back-to-archive-link.php
     144     *     ├── components/
     145     *     │   └── login-form-fields.php
     146     *     └── compat/
     147     *         └── acf/
     148     *             └── single.php
     149     * </code>
     150     *
     151     * Example: To override the ACF fields display template, create:
     152     * <code>
     153     * wp-content/themes/your-theme/simple-feature-requests/compat/acf/single.php
     154     * </code>
     155     *
     156     * Child themes can also override templates by placing them in:
     157     * <code>
     158     * wp-content/themes/child-theme/simple-feature-requests/
     159     * </code>
     160     *
     161     * Template variables are automatically extracted into the template scope
     162     * from the $args parameter. For example, if you pass:
     163     * <code>
     164     * SFR_Template_Hooks::include_template( 'compat/acf/single', array(
     165     *     'acf_fields' => $acf_fields
     166     * ) );
     167     * </code>
     168     *
     169     * The $acf_fields variable will be available in the template.
     170     *
     171     * @param string $name Template name (without .php extension), e.g., 'loop/content', 'compat/acf/single'
     172     * @param array  $args Variables to extract into template scope
     173     *
     174     * @since 4.6.11
    125175     */
    126176    public static function include_template( $name, $args = array() ) {
    127         $path = sprintf( '%s%s.php', SFR_TEMPLATES_PATH, $name );
    128         if ( !file_exists( $path ) ) {
     177        // Check for theme override first
     178        $theme_path = get_template_directory() . '/simple-feature-requests/' . $name . '.php';
     179        $child_theme_path = get_stylesheet_directory() . '/simple-feature-requests/' . $name . '.php';
     180        // Plugin fallback path
     181        $plugin_path = sprintf( '%s%s.php', SFR_TEMPLATES_PATH, $name );
     182        // Determine which template to load
     183        $template_path = false;
     184        // Priority: Child theme > Parent theme > Plugin
     185        if ( file_exists( $child_theme_path ) ) {
     186            $template_path = $child_theme_path;
     187        } elseif ( file_exists( $theme_path ) ) {
     188            $template_path = $theme_path;
     189        } elseif ( file_exists( $plugin_path ) ) {
     190            $template_path = $plugin_path;
     191        }
     192        // If no template found, return early
     193        if ( !$template_path ) {
    129194            return;
    130195        }
     196        // Extract variables into template scope
    131197        extract( $args );
    132         include $path;
     198        // Include the template
     199        include $template_path;
    133200    }
    134201
  • simple-feature-requests/trunk/languages/simple-feature-requests.pot

    r3292092 r3347125  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Simple Feature Requests Pro 2.4.5\n"
     5"Project-Id-Version: Simple Feature Requests Pro 2.4.7\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/simple-feature-requests\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-04-18T16:00:02+00:00\n"
     12"POT-Creation-Date: 2025-08-18T15:03:59+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    14 "X-Generator: WP-CLI 2.11.0\n"
     14"X-Generator: WP-CLI 2.12.0\n"
    1515"X-Domain: simple-feature-requests\n"
    1616
     
    6868msgstr ""
    6969
    70 #: inc/class-admin-filters.php:90
     70#: inc/class-admin-filters.php:92
    7171msgid "Show all Statuses"
     72msgstr ""
     73
     74#: inc/class-admin-filters.php:512
     75msgid "Show all Users"
    7276msgstr ""
    7377
     
    8488
    8589#: inc/class-ajax.php:66
     90#, php-format
    8691msgid "Simple Feature Requests: No post found for ID %d"
    8792msgstr ""
     
    98103msgstr ""
    99104
    100 #: inc/class-assets.php:52
    101 #: inc/class-assets.php:124
     105#: inc/class-assets.php:53
     106#: inc/class-assets.php:125
    102107#: inc/class-feature-request.php:335
    103 #: inc/class-post-types.php:427
     108#: inc/class-post-types.php:431
    104109msgid "Vote"
    105110
     
    107112msgstr[1] ""
    108113
    109 #: inc/class-assets.php:53
    110 #: inc/class-assets.php:125
    111 msgid "Voting"
    112 msgstr ""
    113 
    114114#: inc/class-assets.php:54
    115115#: inc/class-assets.php:126
     116msgid "Voting"
     117msgstr ""
     118
     119#: inc/class-assets.php:55
     120#: inc/class-assets.php:127
    116121#: inc/class-feature-request.php:335
    117122msgid "Voted"
    118123msgstr ""
    119124
    120 #: inc/class-assets.php:143
     125#: inc/class-assets.php:144
    121126msgid "Select Attachments"
    122127msgstr ""
    123128
    124 #: inc/class-assets.php:144
     129#: inc/class-assets.php:145
    125130msgid "Add Attachements"
     131msgstr ""
     132
     133#: inc/class-compat-acf.php:68
     134#: templates/compat/acf/single.php:21
     135msgid "Additional Information"
     136msgstr ""
     137
     138#: inc/class-compat-acf.php:153
     139msgid "Select an option"
     140msgstr ""
     141
     142#: inc/class-compat-acf.php:301
     143#, php-format
     144msgid "Please fill in the %s field."
    126145msgstr ""
    127146
     
    186205
    187206#: inc/class-factory.php:160
     207#, php-format
    188208msgid "It is currently %s."
    189209msgstr ""
     
    194214
    195215#: inc/class-notifications.php:192
     216#, php-format
    196217msgid "Feature request status changed to \"%s\""
    197218msgstr ""
     
    207228
    208229#: inc/class-notifications.php:295
     230#, php-format
    209231msgid "A new %s has been posted by \"%s\" to your site."
    210232msgstr ""
     
    216238#: inc/class-notifications.php:328
    217239#: inc/class-notifications.php:358
     240#, php-format
    218241msgid "Hello %s,"
    219242msgstr ""
    220243
    221244#: inc/class-notifications.php:329
     245#, php-format
    222246msgid "We thought you'd like to know the status of <a href=\"%s\">%s</a> has changed to <strong>%s</strong>."
    223247msgstr ""
     
    228252
    229253#: inc/class-notifications.php:360
     254#, php-format
    230255msgid "<strong>%s</strong> has been merged into <a href=\"%s\">%s</a>. The request status is currently <strong>%s</strong>."
    231256msgstr ""
    232257
    233258#: inc/class-notifications.php:389
     259#, php-format
    234260msgid "Someone has posted a new comment on <a href=\"%s\">%s</a>:"
    235261msgstr ""
     
    244270
    245271#: inc/class-notifications.php:553
     272#, php-format
    246273msgid "From: %s <%s>"
    247274msgstr ""
    248275
    249276#: inc/class-notifications.php:554
     277#, php-format
    250278msgid "Reply-To: %s <%s>"
    251279msgstr ""
     
    263291msgstr ""
    264292
    265 #: inc/class-post-types.php:401
    266 #: inc/class-post-types.php:531
     293#: inc/class-post-types.php:405
     294#: inc/class-post-types.php:540
    267295#: inc/class-settings.php:700
    268296#: inc/class-settings.php:714
     
    271299msgstr ""
    272300
    273 #: inc/class-post-types.php:402
    274 #: inc/class-post-types.php:523
     301#: inc/class-post-types.php:406
     302#: inc/class-post-types.php:532
    275303#: inc/class-template-methods.php:51
    276304msgid "Status"
    277305msgstr ""
    278306
    279 #: inc/class-post-types.php:403
    280 #: inc/class-post-types.php:527
    281 #: inc/class-post-types.php:1462
     307#: inc/class-post-types.php:407
     308#: inc/class-post-types.php:536
     309#: inc/class-post-types.php:1489
    282310#: inc/class-settings.php:272
    283311
    284312msgstr ""
    285313
    286 #: inc/class-post-types.php:473
    287 #: inc/class-post-types.php:1145
     314#: inc/class-post-types.php:477
     315#: inc/class-post-types.php:1172
    288316msgid "Categories"
    289317msgstr ""
    290318
    291 #: inc/class-post-types.php:483
     319#: inc/class-post-types.php:487
    292320msgid "Information"
    293321msgstr ""
    294322
    295 #: inc/class-post-types.php:836
     323#: inc/class-post-types.php:853
     324#, php-format
    296325msgid "%s"
    297326msgstr ""
    298327
    299 #: inc/class-post-types.php:845
     328#: inc/class-post-types.php:864
     329#, php-format
    300330msgid "Edit %s"
    301331msgstr ""
    302332
    303 #: inc/class-post-types.php:854
     333#: inc/class-post-types.php:875
     334#, php-format
    304335msgid "Manage %s"
    305336msgstr ""
    306337
    307 #: inc/class-post-types.php:997
    308 #: inc/class-post-types.php:1281
    309 #: inc/class-post-types.php:1302
    310 #: inc/class-post-types.php:1331
     338#: inc/class-post-types.php:1022
     339#: inc/class-post-types.php:1308
     340#: inc/class-post-types.php:1329
     341#: inc/class-post-types.php:1358
    311342msgid "Merge Requests"
    312343msgstr ""
    313344
    314 #: inc/class-post-types.php:1000
     345#: inc/class-post-types.php:1025
     346#, php-format
    315347msgid "Set Status to %s"
    316348msgstr ""
    317349
    318 #: inc/class-post-types.php:1098
     350#: inc/class-post-types.php:1123
     351#, php-format
    319352msgid "%s status updated."
    320353msgid_plural "%s statuses udpated."
     
    322355msgstr[1] ""
    323356
    324 #: inc/class-post-types.php:1106
     357#: inc/class-post-types.php:1131
    325358msgid "Requests successfully merged."
    326359msgstr ""
    327360
    328 #: inc/class-post-types.php:1124
     361#: inc/class-post-types.php:1151
    329362#: inc/class-template-methods.php:407
    330363msgid "Category"
    331364msgstr ""
    332365
    333 #: inc/class-post-types.php:1130
     366#: inc/class-post-types.php:1157
    334367msgctxt "taxonomy general name"
    335368msgid "Categories"
    336369msgstr ""
    337370
    338 #: inc/class-post-types.php:1131
     371#: inc/class-post-types.php:1158
    339372msgctxt "taxonomy singular name"
    340373msgid "Category"
    341374msgstr ""
    342375
    343 #: inc/class-post-types.php:1132
     376#: inc/class-post-types.php:1159
    344377msgid "Search Categories"
    345378msgstr ""
    346379
    347 #: inc/class-post-types.php:1133
     380#: inc/class-post-types.php:1160
    348381msgid "Popular Categories"
    349382msgstr ""
    350383
    351 #: inc/class-post-types.php:1134
     384#: inc/class-post-types.php:1161
    352385msgid "All Categories"
    353386msgstr ""
    354387
    355 #: inc/class-post-types.php:1137
     388#: inc/class-post-types.php:1164
    356389msgid "Edit Category"
    357390msgstr ""
    358391
    359 #: inc/class-post-types.php:1138
     392#: inc/class-post-types.php:1165
    360393msgid "Update Category"
    361394msgstr ""
    362395
    363 #: inc/class-post-types.php:1139
     396#: inc/class-post-types.php:1166
    364397msgid "Add New Category"
    365398msgstr ""
    366399
    367 #: inc/class-post-types.php:1140
     400#: inc/class-post-types.php:1167
    368401msgid "New Category Name"
    369402msgstr ""
    370403
    371 #: inc/class-post-types.php:1141
     404#: inc/class-post-types.php:1168
    372405msgid "Separate categories with commas"
    373406msgstr ""
    374407
    375 #: inc/class-post-types.php:1142
     408#: inc/class-post-types.php:1169
    376409msgid "Add or remove categories"
    377410msgstr ""
    378411
    379 #: inc/class-post-types.php:1143
     412#: inc/class-post-types.php:1170
    380413msgid "Choose from the most used categories"
    381414msgstr ""
    382415
    383 #: inc/class-post-types.php:1144
     416#: inc/class-post-types.php:1171
    384417msgid "No categories found."
    385418msgstr ""
    386419
    387 #: inc/class-post-types.php:1168
     420#: inc/class-post-types.php:1195
    388421#: inc/class-template-methods.php:434
    389422msgid "Board"
    390423msgstr ""
    391424
    392 #: inc/class-post-types.php:1174
     425#: inc/class-post-types.php:1201
    393426msgctxt "taxonomy general name"
    394427msgid "Boards"
    395428msgstr ""
    396429
    397 #: inc/class-post-types.php:1175
     430#: inc/class-post-types.php:1202
    398431msgctxt "taxonomy singular name"
    399432msgid "Board"
    400433msgstr ""
    401434
    402 #: inc/class-post-types.php:1176
     435#: inc/class-post-types.php:1203
    403436msgid "Search Boards"
    404437msgstr ""
    405438
    406 #: inc/class-post-types.php:1177
     439#: inc/class-post-types.php:1204
    407440msgid "Popular Boards"
    408441msgstr ""
    409442
    410 #: inc/class-post-types.php:1178
     443#: inc/class-post-types.php:1205
    411444msgid "All Boards"
    412445msgstr ""
    413446
    414 #: inc/class-post-types.php:1181
     447#: inc/class-post-types.php:1208
    415448msgid "Edit Board"
    416449msgstr ""
    417450
    418 #: inc/class-post-types.php:1182
     451#: inc/class-post-types.php:1209
    419452msgid "Update Board"
    420453msgstr ""
    421454
    422 #: inc/class-post-types.php:1183
     455#: inc/class-post-types.php:1210
    423456msgid "Add New Board"
    424457msgstr ""
    425458
    426 #: inc/class-post-types.php:1184
     459#: inc/class-post-types.php:1211
    427460msgid "New Board Name"
    428461msgstr ""
    429462
    430 #: inc/class-post-types.php:1185
     463#: inc/class-post-types.php:1212
    431464msgid "Separate boards with commas"
    432465msgstr ""
    433466
    434 #: inc/class-post-types.php:1186
     467#: inc/class-post-types.php:1213
    435468msgid "Add or remove boards"
    436469msgstr ""
    437470
    438 #: inc/class-post-types.php:1187
     471#: inc/class-post-types.php:1214
    439472msgid "Choose from the most used boards"
    440473msgstr ""
    441474
    442 #: inc/class-post-types.php:1188
     475#: inc/class-post-types.php:1215
    443476msgid "No boards found."
    444477msgstr ""
    445478
    446 #: inc/class-post-types.php:1189
     479#: inc/class-post-types.php:1216
    447480msgid "Boards"
    448481msgstr ""
    449482
    450 #: inc/class-post-types.php:1304
     483#: inc/class-post-types.php:1331
    451484msgid "You have specified the following requests to be merged:"
    452485msgstr ""
    453486
    454 #: inc/class-post-types.php:1313
     487#: inc/class-post-types.php:1340
     488#, php-format
    455489msgid "%d vote"
    456490
     
    458492msgstr[1] ""
    459493
    460 #: inc/class-post-types.php:1334
     494#: inc/class-post-types.php:1361
    461495msgid "Note: Merged requests will be trashed. The request authors of the merged requests will be notified of the merge via email (depending on your settings)."
    462496msgstr ""
    463497
    464 #: inc/class-post-types.php:1467
     498#: inc/class-post-types.php:1494
    465499msgid "Voters"
    466500msgstr ""
    467501
    468 #: inc/class-post-types.php:1468
     502#: inc/class-post-types.php:1495
    469503msgid "View All"
    470504msgstr ""
    471505
    472 #: inc/class-post-types.php:1490
     506#: inc/class-post-types.php:1517
    473507#: inc/class-template-methods.php:497
    474508msgid "Attachments"
    475509msgstr ""
    476510
    477 #: inc/class-post-types.php:1517
     511#: inc/class-post-types.php:1546
    478512msgid "Add attachments"
    479513msgstr ""
     
    484518
    485519#: inc/class-settings.php:35
    486 #: simple-feature-requests.php:265
     520#: simple-feature-requests.php:270
    487521msgid "Simple Feature Requests"
    488522msgstr ""
     
    589623
    590624#: inc/class-settings.php:263
     625#, php-format
    591626msgid "Used to sign off notification emails. You can use %site_name% and %site_url%."
    592627msgstr ""
     
    719754
    720755#: inc/class-settings.php:535
     756#, php-format
    721757msgid "You need to <a href=\"%s\">set an archive page</a> for Simple Feature Requests, under the \"General\" tab."
    722758msgstr ""
     
    833869
    834870#: inc/class-shortcodes.php:44
     871#, php-format
    835872msgid "Please select this page (%s) as the <strong>Archive Page</strong> in <a href=\"%s\">the settings</a>, under the \"General\" tab."
    836873msgstr ""
     
    841878
    842879#: inc/class-shortcodes.php:146
     880#, php-format
    843881msgid "Sorry, the taxonomy \"%s\" does not exist."
    844882msgstr ""
     
    869907
    870908#: inc/class-submission.php:122
     909#, php-format
    871910msgid "Please select a %s."
    872911msgstr ""
     
    881920
    882921#: inc/class-template-methods.php:42
     922#, php-format
    883923msgid "My %s"
    884924msgstr ""
     
    893933
    894934#: inc/class-template-methods.php:268
     935#, php-format
    895936msgid "%d comment"
    896937msgid_plural "%d comments"
     
    899940
    900941#: inc/class-template-methods.php:319
     942#, php-format
    901943msgid "&larr; All %s"
    902944msgstr ""
    903945
    904946#: inc/class-template-methods.php:460
     947#, php-format
    905948msgid "Select a %s..."
    906949msgstr ""
     
    10131056
    10141057#: inc/functions.php:48
     1058#, php-format
    10151059msgid "The %s is pending approval from an admin."
    10161060msgstr ""
    10171061
    10181062#: inc/functions.php:49
     1063#, php-format
    10191064msgid "The %s is now published on the site."
    10201065msgstr ""
    10211066
    10221067#: inc/functions.php:50
     1068#, php-format
    10231069msgid "The %s is being considered for development."
    10241070msgstr ""
    10251071
    10261072#: inc/functions.php:51
     1073#, php-format
    10271074msgid "Good news! The %s has been planned for development."
    10281075msgstr ""
    10291076
    10301077#: inc/functions.php:52
     1078#, php-format
    10311079msgid "Good news! The %s has been started."
    10321080msgstr ""
    10331081
    10341082#: inc/functions.php:53
     1083#, php-format
    10351084msgid "Good news! The %s has now been completed."
    10361085msgstr ""
    10371086
    10381087#: inc/functions.php:54
     1088#, php-format
    10391089msgid "Sorry, the %s has been declined."
    10401090msgstr ""
    10411091
    1042 #: simple-feature-requests.php:300
     1092#: simple-feature-requests.php:310
    10431093msgid "Available in Pro"
    10441094msgstr ""
    10451095
    10461096#: templates/archive/submission-form.php:24
     1097#, php-format
    10471098msgid "Your %s"
    10481099msgstr ""
    10491100
    10501101#: templates/archive/submission-form.php:27
     1102#, php-format
    10511103msgid "Enter your %s..."
    10521104msgstr ""
     
    10611113
    10621114#: templates/archive/submission-form.php:60
     1115#, php-format
    10631116msgid "Vote for an existing %s (%s)"
    10641117msgstr ""
    10651118
    10661119#: templates/archive/submission-form.php:62
     1120#, php-format
    10671121msgid "Post a new %s"
    10681122msgstr ""
     
    11041158
    11051159#: templates/loop/no-requests-found.php:11
     1160#, php-format
    11061161msgid "Sorry, no %s were found."
    11071162msgstr ""
     
    11321187
    11331188#: templates/sidebar/login.php:36
     1189#, php-format
    11341190msgid "Hey, %s."
    11351191msgstr ""
     
    11401196
    11411197#: templates/sidebar/top-requests.php:19
     1198#, php-format
    11421199msgid "Top %s"
    11431200msgstr ""
    11441201
    11451202#: templates/sidebar/top-requests.php:25
     1203#, php-format
    11461204msgid "%d Vote"
    11471205
  • simple-feature-requests/trunk/plugin-data.json

    r3327802 r3347125  
    11{
    2   "version": "2.4.6.2",
    3   "wp": "6.8.1",
     2  "version": "2.4.7",
     3  "wp": "6.8.2",
    44  "wp_requires": "6.0",
    55  "woo": "",
  • simple-feature-requests/trunk/readme.txt

    r3327802 r3347125  
    11=== Simple Feature Requests Free - User Feedback Board ===
    2 Contributors: patrickgarman, blobaugh, freemius
     2Contributors: patrickgarman, blobaugh
    33Donate link: https://simplefeaturerequests.com/pricing/?utm_source=SFR&utm_medium=wp.org&utm_campaign=Readme
    44Tags: feature request, customer feedback, user feedback, roadmap, idea management
    55Requires at least: 6.0
    6 Tested up to: 6.8.1
    7 Stable tag: 2.4.6.2
     6Tested up to: 6.8.2
     7Stable tag: 2.4.7
    88Requires PHP: 7.4
    99License: GPLv2 or later
     
    4747* [Custom request labels](https://docs.simplefeaturerequests.com/pro-features/custom-labels) to allow you to rename 'request' and 'requests' to whatever is most appropriate for your use-case.
    4848* Allow Guest Voting for visitors without a user account.
     49* Integration with Advanced Custom Fields. Collect additional information from your users. Currently supported fields: Text, Email, URL, Number, Textarea, Select, Checkbox, Radio
    4950
    5051[Upgrade to Pro](https://simplefeaturerequests.com/pricing/?utm_source=SFR&utm_medium=wp.org&utm_campaign=Readme)
     
    9899Now if you view the page you created on your website, you should see the Feature Requests archive page.
    99100
     101== Customizing Simple Feature Requests templates in your theme ==
     102
     103Simple Feature Requests allows you to fully customize templates for your theme. The templates that are available for customization are available in the `templates` folder of the plugin.
     104
     105To create customized templates:
     106
     107* In your theme folder, create the folder `simple-feature-requests`.
     108* Copy the template from the plugin, including the directory structure.
     109* Customize the new file(s) in the theme folder.
     110
     111For example:
     112
     113Given a theme folder of `my-theme`, and a need to customize the ACF output:
     114
     115* Create the folder in the theme, `simple-feature-requests`.
     116* From the plugin templates folder, copy `compat/acf/single.php` into the `simple-feature-requests` folder.
     117* Edit as desired.
     118
     119The result will be the following in the theme folder: `my-theme/simple-feature-requests/compat/acf/single.php`.
     120
    100121== Frequently Asked Questions ==
    101122
     
    130151
    131152== Changelog ==
     153**v2.4.7 (2025-07-24)**
     154Enhancement: Attachments now open in a new tab when clicked on in the admin request view
     155Bugfix: Re-applied Fixed a PHP error some user received that fatal error on SFR\App. Props @dimdim2001
     156New Feature: Added support for Advanced Custom Fields in Pro edition. Curently supported field types: Text, Email, URL, Number, Textarea, Select, Checkbox, Radio
     157New Feature: Added ability to override plugin templates in the theme. See doc on setup in inc/class-template-hooks.php in the `include_template` method.g
     158Update: Localization updates
     159Update: Updated works with WordPress version
     160Update: Updated outdated PHP version notification to include support removal
     161
    132162**v2.4.6.2 (2025-07-14)**
    133163Enhancement: Added admin filter by author to the request list page
  • simple-feature-requests/trunk/simple-feature-requests.php

    r3327802 r3347125  
    55 * Plugin URI: https://simplefeaturerequests.com
    66 * Description: Collect and manage user feedback using your existing WordPress website. Prioritize the product features important to you and your customers.
    7  * Version: 2.4.6.2
     7 * Version: 2.4.7
    88 * Author: Mindsize
    99 * Author URI: https://mindsize.com
     
    1515    // Exit if accessed directly
    1616}
    17 require_once 'vendor/autoload.php';
     17require_once __DIR__ . '/vendor/autoload.php';
    1818class Simple_Feature_Requests {
    1919    /**
     
    2222     * @var string
    2323     */
    24     public static $version = '2.4.6.2';
     24    public static $version = '2.4.7';
    2525
    2626    /**
Note: See TracChangeset for help on using the changeset viewer.