Skip to content

Release 4.4.4#123

Merged
sorinmarta merged 1 commit intomasterfrom
release/4.4.4
Feb 10, 2026
Merged

Release 4.4.4#123
sorinmarta merged 1 commit intomasterfrom
release/4.4.4

Conversation

@sorinmarta
Copy link
Contributor

No description provided.

@sorinmarta sorinmarta added run analysis Run the phpcs run tests Run the unit tests labels Feb 10, 2026
@sorinmarta sorinmarta merged commit 6f223b9 into master Feb 10, 2026
11 of 12 checks passed
@sorinmarta sorinmarta deleted the release/4.4.4 branch February 10, 2026 07:22
@coderabbitai
Copy link

coderabbitai bot commented Feb 10, 2026

Walkthrough

Version 4.4.4 release bump with changelog updates documenting security and stability fixes (PayPal verification, PHP notices, fatal errors, translation placeholders, Safari layout, Moment.js loading, missing dependencies). Includes PHPDoc @since tag updates across multiple files and translation file metadata/content synchronization.

Changes

Cohort / File(s) Summary
Plugin Metadata
README.TXT, awpcp.php
Bumped plugin version and DB version from 4.4.3 to 4.4.4; added changelog entry documenting PayPal confirmation, PHP notices, fatal errors, translation, Safari, Moment.js, and missing dependencies fixes.
Frontend Widgets
frontend/widget-categories.php, frontend/widget-latest-ads.php, frontend/widget-random-ad.php, frontend/widget-search.php
Updated PHPDoc @since tags in set_translated_strings() and set_random_translated_strings() methods from placeholder x.x to 4.4.4.
Includes – Payments & Handlers
includes/frontend/class-generate-listing-preview-ajax-handler.php, includes/functions/payments.php, includes/payment-gateway-paypal-standard.php, includes/payments-api.php
Updated PHPDoc @since annotations from x.x to 4.4.4 for payment verification functions, AJAX handler methods, and payment-processing methods.
Includes – Listings
includes/listings/class-listings-content.php
Updated PHPDoc @since annotation in filter_content_with_shortcodes() method docblock from x.x to 4.4.4.
Translation Files
languages/another-wordpress-classifieds-plugin-de_DE.po, languages/another-wordpress-classifieds-plugin-es_ES.po, languages/another-wordpress-classifieds-plugin-fr_FR.po, languages/another-wordpress-classifieds-plugin-hu_HU.po, languages/another-wordpress-classifieds-plugin-it_IT.po, languages/another-wordpress-classifieds-plugin-pt_BR.po, languages/another-wordpress-classifieds-plugin-ro_RO.po, languages/another-wordpress-classifieds-plugin-ru_RU.po, languages/another-wordpress-classifieds-plugin-sk_SK.po, languages/another-wordpress-classifieds-plugin.pot
Updated POT-Creation-Date timestamps; added references to new AJAX handler for listing preview generation; adjusted line-number references for existing translations; updated translation strings and payment verification flow messaging across all supported languages.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Release 4.3.5 #78: Updates plugin version metadata and docblock @since tags in awpcp.php and frontend files using similar patterns for version bumping and documentation updates.
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Description check ❓ Inconclusive No pull request description was provided by the author. While a description would be helpful for context, the absence of one makes this check inconclusive rather than a clear failure. Consider adding a description that outlines the security and stability fixes included in this release, such as PayPal confirmation, PHP notices, fatal errors, and translation updates.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Release 4.4.4' directly aligns with the changeset, which primarily bumps the plugin version from 4.4.3 to 4.4.4 across all relevant files and adds a changelog entry for version 4.4.4.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/4.4.4

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (24)
languages/another-wordpress-classifieds-plugin-ru_RU.po (3)

2762-2837: ⚠️ Potential issue | 🟡 Minor

Fill missing RU translations for approval notifications.

Two new strings are still untranslated, which will fall back to English in ru_RU.

🌐 Suggested translations
 msgid ""
 "Images on Ad \"%1$s\" are awaiting approval. You can approve the images "
 "going to the Manage Images section for that Ad and clicking the \"Enable\" "
 "button below each image. Click here to continue: %2$s."
-msgstr ""
+msgstr ""
+"Изображения в объявлении «%1$s» ожидают утверждения. Вы можете утвердить "
+"изображения, перейдя в раздел «Управление изображениями» и нажав кнопку "
+"«Включить» под каждым изображением. Нажмите здесь, чтобы продолжить: %2$s."

 msgid ""
 "The Ad \"%1$s\" is awaiting approval. You can approve the Ad going to the "
 "Classified edit section and clicking the \"Publish\" button. Click here to "
 "continue: %2$s."
-msgstr ""
+msgstr ""
+"Объявление «%1$s» ожидает утверждения. Вы можете утвердить его, перейдя в "
+"раздел редактирования объявления и нажав кнопку «Опубликовать». Нажмите "
+"здесь, чтобы продолжить: %2$s."

3602-3651: ⚠️ Potential issue | 🟡 Minor

Correct plugin name translation.

AWP Classifieds Plugin is currently translated as “Страницы Доски объявлений”, which changes the meaning.

✏️ Suggested fix
-msgstr "Страницы Доски объявлений"
+msgstr "Плагин AWP Classifieds"

5159-5253: ⚠️ Potential issue | 🟡 Minor

Complete payment-verification translations.

There are missing/loosely-matching translations in the verification status block.

🌐 Suggested updates
-msgstr "В ожидании оплаты"
+msgstr "Проверяем ваш платеж"

 msgid ""
 "Your payment is being verified with PayPal. This usually takes just a few "
 "seconds. The page will refresh automatically."
-msgstr ""
+msgstr ""
+"Ваш платеж проверяется в PayPal. Обычно это занимает всего несколько "
+"секунд. Страница обновится автоматически."

 msgid ""
 "Your Payment has been processed successfully. Please press the button below "
 "to continue with the process."
-msgstr ""
-"Ваша платёж успешно обработан. Вы можете продолжить с помощью кнопки ниже."
+msgstr ""
+"Ваш платеж успешно обработан. Вы можете продолжить с помощью кнопки ниже."

 msgid ""
 "Your Payment has been processed successfully. However is still pending "
 "approvation from the payment gateway. Please press the button below to "
 "continue with the process."
-msgstr ""
-"Ваш платёж обработан успешно. Мы ожидаем подтверждение платежа от сервиса. "
-"Вы можете продолжить с помощью кнопки ниже."
+msgstr ""
+"Ваш платеж обработан успешно. Мы ожидаем подтверждение платежа от сервиса. "
+"Вы можете продолжить с помощью кнопки ниже."
languages/another-wordpress-classifieds-plugin-ro_RO.po (3)

2956-2977: ⚠️ Potential issue | 🟡 Minor

Fill in missing Romanian translations for approval notifications.

msgstr is empty for two new approval-notification strings, so users will see English in the Romanian locale.


3885-3892: ⚠️ Potential issue | 🟡 Minor

Update branding translation to match “AWP Classifieds Plugin.”

The current Romanian msgstr still references the old product name, which is user-visible.


5272-5292: ⚠️ Potential issue | 🟡 Minor

Align PayPal verification error translation with the updated msgid.

The Romanian translation omits the PayPal reference and refresh instruction, which may confuse users.

languages/another-wordpress-classifieds-plugin-sk_SK.po (3)

3487-3535: ⚠️ Potential issue | 🟡 Minor

Keep the product name untranslated.
The msgstr “Stránky inzerátov” changes the brand name meaning; keep it as the product name to avoid confusion.

✏️ Suggested fix
-#, fuzzy
-msgid "AWP Classifieds Plugin"
-msgstr "Stránky inzerátov"
+msgid "AWP Classifieds Plugin"
+msgstr "AWP Classifieds Plugin"

4952-5043: ⚠️ Potential issue | 🟡 Minor

Translate new payment-status headings to avoid English UI.
The new payment status strings in this block have empty msgstr entries. If the Slovak locale is intended to be complete, consider translating them.


10152-10166: ⚠️ Potential issue | 🟡 Minor

Set the datepicker week start to Monday (sk_SK).
Line 10164 currently sets Tuesday ("2"). Slovak locale should start on Monday ("1").

🗓️ Suggested fix
-msgstr "2"
+msgstr "1"
languages/another-wordpress-classifieds-plugin-hu_HU.po (2)

9-16: ⚠️ Potential issue | 🟡 Minor

Update PO-Revision-Date to reflect the 2026 edits.

POT-Creation-Date was updated, but PO-Revision-Date still shows 2020, which can confuse translation tooling and release metadata. Consider updating the revision date (and Last-Translator if applicable) to the current update timestamp.

🗓️ Suggested update
-"PO-Revision-Date: 2020-10-15 19:51+0000\n"
+"PO-Revision-Date: 2026-02-10 07:13+0000\n"

4963-5055: ⚠️ Potential issue | 🟡 Minor

Add Hungarian translations for new payment-status strings.

Several newly added PayPal verification/status messages still have empty msgstr, so the UI will fall back to English. Consider translating these new strings.

💡 Suggested translations (edit as needed)
 msgid "Verifying Your Payment"
-msgstr ""
+msgstr "Fizetés ellenőrzése"

 msgid ""
 "Your payment is being verified with PayPal. This usually takes just a few "
 "seconds. The page will refresh automatically."
-msgstr ""
+msgstr ""
+"A PayPal épp ellenőrzi a fizetését. Ez általában csak néhány másodpercet "
+"vesz igénybe. Az oldal automatikusan frissül."

 msgid "Waiting on Confirmation"
-msgstr ""
+msgstr "Visszaigazolásra várunk"

 msgid ""
 "The payment gateway is taking a bit longer than expected to confirm your "
 "payment. Please wait a few seconds while we verify the transaction. The page "
 "will reload automatically."
-msgstr ""
+msgstr ""
+"A fizetési átjáró a vártnál tovább tartja a visszaigazolást. Kérjük, "
+"várjon néhány másodpercet, amíg ellenőrizzük a tranzakciót. Az oldal "
+"automatikusan újratöltődik."

 msgid "Payment Not Verified"
-msgstr ""
+msgstr "Fizetés nincs ellenőrizve"
languages/another-wordpress-classifieds-plugin-pt_BR.po (4)

2897-2935: ⚠️ Potential issue | 🟡 Minor

Add missing pt_BR translations for approval notification emails.

Line 2914 and Line 2929 have empty msgstr entries, so users will see English in those notifications.

📝 Suggested translations
 msgid ""
 "Images on Ad \"%1$s\" are awaiting approval. You can approve the images "
 "going to the Manage Images section for that Ad and clicking the \"Enable\" "
 "button below each image. Click here to continue: %2$s."
 msgstr ""
-""
+"As imagens do anúncio \"%1$s\" estão aguardando aprovação. Você pode "
+"aprová-las indo à seção Gerenciar Imagens desse anúncio e clicando no botão "
+"\"Ativar\" abaixo de cada imagem. Clique aqui para continuar: %2$s."
@@
 msgid ""
 "The Ad \"%1$s\" is awaiting approval. You can approve the Ad going to the "
 "Classified edit section and clicking the \"Publish\" button. Click here to "
 "continue: %2$s."
 msgstr ""
-""
+"O anúncio \"%1$s\" está aguardando aprovação. Você pode aprová-lo indo à "
+"seção de edição de Classificados e clicando no botão \"Publicar\". Clique "
+"aqui para continuar: %2$s."

3713-3721: ⚠️ Potential issue | 🟡 Minor

Update plugin name translation or remove fuzzy flag.

Line 3719 still uses the old product name, so this entry will likely be ignored.

🛠️ Suggested fix
-#, fuzzy
 msgid "AWP Classifieds Plugin"
-msgstr "Another WordPress Classifieds Plugin"
+msgstr "AWP Classifieds Plugin"

5053-5125: ⚠️ Potential issue | 🟡 Minor

Refresh the PayPal verification error translation.

Line 5096 is still marked fuzzy and the msgstr doesn’t mention PayPal/verification.

🛠️ Suggested fix
-#, fuzzy
 msgid ""
 "There was an error verifying your payment with PayPal. Please wait a moment "
 "and refresh this page."
 msgstr ""
-"Houve um erro ao processar o seu pedido de pagamento. Por favor, tente "
-"novamente ou entre em contato com um administrador."
+"Houve um erro ao verificar seu pagamento com o PayPal. Aguarde um momento e "
+"atualize esta página."

5284-5384: ⚠️ Potential issue | 🟡 Minor

Translate the new PayPal verification status strings.

Line 5286 maps to “Pagamento Pendente” and the body at Line 5290 is empty, so the UI will fall back to English.

🛠️ Suggested fix
-#, fuzzy
 msgid "Verifying Your Payment"
-msgstr "Pagamento Pendente"
+msgstr "Verificando seu pagamento"
@@
 msgid ""
 "Your payment is being verified with PayPal. This usually takes just a few "
 "seconds. The page will refresh automatically."
 msgstr ""
+"Seu pagamento está sendo verificado com o PayPal. Isso normalmente leva "
+"apenas alguns segundos. A página será atualizada automaticamente."
languages/another-wordpress-classifieds-plugin-es_ES.po (1)

3826-3834: ⚠️ Potential issue | 🟡 Minor

Align Spanish branding with the updated product name.

msgid is now “AWP Classifieds Plugin” but the Spanish msgstr still references the old name, which will show an outdated brand in the UI.

Proposed fix
-msgstr "Another WordPress Classifieds Plugin"
+msgstr "AWP Classifieds Plugin"
includes/payments-api.php (1)

1030-1058: ⚠️ Potential issue | 🟡 Minor

Potential infinite refresh cycle if IPN never arrives.

After 6 refreshes the counter is removed from sessionStorage, but if the user manually refreshes (or if a browser restores the tab), the script runs again with refreshCount = 0, restarting another 6-refresh burst. This cycle repeats indefinitely as long as pending_verification remains true on the server side.

Consider adding a server-side TTL for the pending_verification flag (e.g., clear it after 60 seconds) or persisting a "gave up" flag in sessionStorage so the script doesn't restart after exhausting maxRefreshes.

Example client-side fix
 (function() {
     const storageKey = 'awpcp_pending_verification_refresh_count';
+    const gaveUpKey  = 'awpcp_pending_verification_gave_up';
     const maxRefreshes = 6;
     const refreshInterval = 5000; // 5 seconds

+    if ( sessionStorage.getItem( gaveUpKey ) ) {
+        return; // Already exhausted retries; stop auto-refreshing.
+    }
+
     // Get the current count from sessionStorage, defaulting to 0.
     let refreshCount = parseInt( sessionStorage.getItem( storageKey ) || '0', 10 );

     function refreshPage() {
         refreshCount++;

         if ( refreshCount <= maxRefreshes ) {
             // Save the incremented count before reloading.
             sessionStorage.setItem( storageKey, refreshCount.toString() );
             window.location.reload();
         } else {
             // Max refreshes reached, clear the counter.
             sessionStorage.removeItem( storageKey );
+            sessionStorage.setItem( gaveUpKey, '1' );
         }
     }

     setTimeout( refreshPage, refreshInterval );
 })();

Also clear gaveUpKey in the clear script:

 (function() {
     sessionStorage.removeItem( 'awpcp_pending_verification_refresh_count' );
+    sessionStorage.removeItem( 'awpcp_pending_verification_gave_up' );
 })();
includes/payment-gateway-paypal-standard.php (2)

297-331: ⚠️ Potential issue | 🟠 Major

pending_verification not cleared on the IPN-INVALID path.

When $is_ipn is true and the response is INVALID, verify_transaction() (Line 73) already sets pending_verification to true. Then this method only sets payment_status = PAYMENT_STATUS_INVALID without clearing the flag. If the user-return flow ran first and set up the auto-refresh, then the IPN arrives with INVALID, the stale pending_verification = true could cause the UI to keep showing "Verifying Your Payment" instead of a failure message.

Suggested fix
         if ( 'INVALID' === $response ) {
             if ( $is_ipn ) {
                 // IPN returning INVALID is a real failure from PayPal.
                 $transaction->payment_status = AWPCP_Payment_Transaction::PAYMENT_STATUS_INVALID;
+                $transaction->set( 'pending_verification', false );
             } else {
                 // User return with INVALID is likely a timing issue. Set to PENDING and wait for IPN.
                 $transaction->payment_status = AWPCP_Payment_Transaction::PAYMENT_STATUS_PENDING;
                 $transaction->set( 'pending_verification', true );
             }

60-87: ⚠️ Potential issue | 🟠 Major

Same issue in verify_transaction: INVALID branch sets pending_verification unconditionally.

This method doesn't know whether the call originates from an IPN or a user return, yet it sets pending_verification = true on Line 73 for all INVALID responses. This conflicts with the IPN-specific handling in do_process_payment.

Consider moving the pending_verification logic entirely into do_process_payment (which has the $is_ipn context) and removing it from verify_transaction, or passing the $is_ipn flag through.

Suggested fix — remove pending_verification from verify_transaction
             } elseif ( 'INVALID' === $response ) {
-                // INVALID on user return is likely a timing issue. Show pending message.
-                $transaction->set( 'pending_verification', true );
-
                 // Don't set errors - we'll show a pending notice instead.
                 unset( $transaction->errors['verification-get'] );
                 unset( $transaction->errors['verification-post'] );
languages/another-wordpress-classifieds-plugin-fr_FR.po (1)

2979-3000: ⚠️ Potential issue | 🟡 Minor

Add missing French translations for new approval notification strings.

Both msgstr entries are empty, so fr_FR users will see English fallbacks.

💡 Suggested translations
-msgstr ""
+msgstr "Les images de l’annonce « %1$s » sont en attente d’approbation. Vous pouvez les approuver dans la section Gérer les images et en cliquant sur « Activer » sous chaque image. Cliquez ici pour continuer : %2$s."
@@
-msgstr ""
+msgstr "L’annonce « %1$s » est en attente d’approbation. Դուք pouvez l’approuver dans la section d’édition des annonces et en cliquant sur « Publier ». Cliquez ici pour continuer : %2$s."
languages/another-wordpress-classifieds-plugin-de_DE.po (4)

79-105: ⚠️ Potential issue | 🟡 Minor

Add the missing %s placeholders to preserve runtime values.

The German strings drop the numeric placeholders, so the duration/image/char limits will never render. This is user-visible and loses critical data.

💡 Suggested fix
 msgid "Duration: %s"
-msgstr "Dauer"
+msgstr "Dauer: %s"

 msgid "# of images: %s"
-msgstr "Anzahl Bilder:"
+msgstr "Anzahl Bilder: %s"

 msgid "Chars in title: %s"
-msgstr "Zeichen im Titel:"
+msgstr "Zeichen im Titel: %s"

 msgid "Chars in description: %s"
-msgstr "Zeichen in der Beschreibung"
+msgstr "Zeichen in der Beschreibung: %s"

386-396: ⚠️ Potential issue | 🟡 Minor

Restore the %s placeholder in the error message.

Line 386 expects a formatted error string, but the translation hardcodes <error-message>, so the actual error is lost.

💡 Suggested fix
 msgid ""
 "The categories couldn't be deleted because there was an error trying to load "
 "the category that you selected to become the new category associated to "
 "affected ads. %s"
 msgstr ""
-"Die Kategorien konnten nicht gelöscht werden, da beim Laden der von Dir "
-"ausgewählten Kategorie, die den betroffenen Anzeigen zugeordnet ist, ein "
-"Fehler aufgetreten ist.<error-message>"
+"Die Kategorien konnten nicht gelöscht werden, da beim Laden der von Dir "
+"ausgewählten Kategorie, die den betroffenen Anzeigen zugeordnet ist, ein "
+"Fehler aufgetreten ist. %s"

1044-1154: ⚠️ Potential issue | 🟠 Major

Align Facebook settings translations with positional placeholders.

These msgids now use %1$s...%4$s placeholders (typically for links), but the msgstr values still use legacy {link_...} tokens. That will break link rendering or leave raw tokens in the UI.

Please update the translations to mirror the positional placeholders. For example:

💡 Example fix pattern
 msgid "You can read more about Facebook changes here: %s"
-msgstr "Weitere Informationen zu Facebook-Änderungen findest Du hier: {facebook_post_link}"
+msgstr "Weitere Informationen zu Facebook-Änderungen findest Du hier: %s"

Apply the same pattern to the adjacent strings that use %1$s/%2$s/%3$s/%4$s.

Also applies to: 1184-1193


1220-1260: ⚠️ Potential issue | 🟠 Major

Use positional placeholders to match the updated msgids.

The page-settings strings now use %1$s, %2$s, %3$s placeholders, but the translations still use plain %s or custom tokens. This can reorder or drop values at runtime.

Please update these msgstr values to keep the positional placeholders intact.

🤖 Fix all issues with AI agents
In `@languages/another-wordpress-classifieds-plugin-it_IT.po`:
- Around line 10062-10075: Replace the incorrect translation for the datepicker
first-day-of-week entry: locate the msgctxt "[UI Datepicker] The first day of
the week, Sun = 0, Mon = 1, ..." where msgid is "0" and remove the timezone
string in msgstr ("Europe/Rome"), replacing it with the correct numeric weekday
index (e.g., "0" for Sunday or the intended numeric value) so the datepicker
receives a number rather than a timezone string.

In `@languages/another-wordpress-classifieds-plugin-pt_BR.po`:
- Around line 11066-11079: The msgstr for the msgctxt "[UI Datepicker] The first
day of the week, Sun = 0, Mon = 1, ..." currently contains "." which parses as
NaN; change that msgstr from "." to the numeric string "0" so the datepicker
firstDay setting is correctly parsed as 0 (Sunday) by JavaScript.
🟡 Minor comments (19)
languages/another-wordpress-classifieds-plugin-ru_RU.po-2729-2760 (1)

2729-2760: ⚠️ Potential issue | 🟡 Minor

Fix typos in upload error translations.

Two user-facing typos slipped in; please correct them.

✏️ Suggested fixes
-msgstr "Отсутствет временный каталог."
+msgstr "Отсутствует временный каталог."

-msgstr "Загрузка файла была остановленна из-за расширения."
+msgstr "Загрузка файла была остановлена из-за расширения."
languages/another-wordpress-classifieds-plugin-ru_RU.po-4959-4981 (1)

4959-4981: ⚠️ Potential issue | 🟡 Minor

Add missing PayPal verification wait translation.

This new string is currently empty, so RU users will see English.

🌐 Suggested translation
 msgid ""
 "We haven't received your payment information from PayPal yet and we are "
 "unable to verify your transaction. Please reload this page or visit <a "
 "href=\"%1$s\">%2$s</a> in 30 seconds to continue placing your Ad."
-msgstr ""
+msgstr ""
+"Мы еще не получили информацию о платеже от PayPal и не можем подтвердить "
+"вашу транзакцию. Пожалуйста, обновите эту страницу или перейдите по ссылке "
+"<a href=\"%1$s\">%2$s</a> через 30 секунд, чтобы продолжить размещение "
+"объявления."
languages/another-wordpress-classifieds-plugin.pot-3988-3990 (1)

3988-3990: ⚠️ Potential issue | 🟡 Minor

Polish the payment failure subject line.

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "Customer attempt to pay has failed"
+msgid "Customer’s payment attempt has failed"
languages/another-wordpress-classifieds-plugin.pot-4474-4490 (1)

4474-4490: ⚠️ Potential issue | 🟡 Minor

Tighten “this site administrator” phrasing.

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "If you have any further questions, please contact this site administrator."
+msgid "If you have any further questions, please contact this site’s administrator."
languages/another-wordpress-classifieds-plugin.pot-2352-2422 (1)

2352-2422: ⚠️ Potential issue | 🟡 Minor

Make widget description punctuation consistent.
A few descriptions miss trailing periods while others include them.

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "Displays a list of latest Ads"
+msgid "Displays a list of latest Ads."

-msgid "Displays a list of random Ads"
+msgid "Displays a list of random Ads."
languages/another-wordpress-classifieds-plugin.pot-1591-1609 (1)

1591-1609: ⚠️ Potential issue | 🟡 Minor

Fix “doesn't exists” grammar in user-facing strings.
These should read “doesn't exist.”

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "The specified Ad doesn't exists. No images can be added at this time."
+msgid "The specified Ad doesn't exist. No images can be added at this time."

-msgid "The Ad associated with this transaction doesn't exists."
+msgid "The Ad associated with this transaction doesn't exist."
languages/another-wordpress-classifieds-plugin.pot-4453-4472 (1)

4453-4472: ⚠️ Potential issue | 🟡 Minor

Fix typo “adminstrator.”

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "It appears this transaction has already been processed. If you do not see your ad in the system please contact the site adminstrator for assistance."
+msgid "It appears this transaction has already been processed. If you do not see your ad in the system please contact the site administrator for assistance."
languages/another-wordpress-classifieds-plugin.pot-4647-4726 (1)

4647-4726: ⚠️ Potential issue | 🟡 Minor

Fix “approvation” typo and add comma.

✏️ Proposed update (also update source strings and regenerate POT)
-msgid "Your Payment has been processed successfully. However is still pending approvation from the payment gateway. Please press the button below to continue with the process."
+msgid "Your Payment has been processed successfully. However, it is still pending approval from the payment gateway. Please press the button below to continue with the process."
languages/another-wordpress-classifieds-plugin-ro_RO.po-5473-5483 (1)

5473-5483: ⚠️ Potential issue | 🟡 Minor

Provide Romanian translation for the PayPal verification paragraph.

The explanatory paragraph has an empty msgstr, which will surface English.

languages/another-wordpress-classifieds-plugin-sk_SK.po-4248-4251 (1)

4248-4251: ⚠️ Potential issue | 🟡 Minor

Fix Slovak typo in payment error message.
“zplatenie” should be “zaplatenie”.

✏️ Suggested fix
-msgstr "Pokus zákazníka o zplatenie zlyhal"
+msgstr "Pokus zákazníka o zaplatenie zlyhal"
languages/another-wordpress-classifieds-plugin-hu_HU.po-2537-2540 (1)

2537-2540: ⚠️ Potential issue | 🟡 Minor

Fix typo in widget description translation.

“Kategóriák megjenítése” contains a typo.

✏️ Suggested fix
-msgstr "Kategóriák megjenítése"
+msgstr "Kategóriák megjelenítése"
languages/another-wordpress-classifieds-plugin-hu_HU.po-4797-4800 (1)

4797-4800: ⚠️ Potential issue | 🟡 Minor

Fix typo in payment cancellation message.

“megszakítótta” should be “megszakította.”

✏️ Suggested fix
-msgstr "A befizetési tranzakciót a felhasználó megszakítótta."
+msgstr "A befizetési tranzakciót a felhasználó megszakította."
languages/another-wordpress-classifieds-plugin-hu_HU.po-2663-2666 (1)

2663-2666: ⚠️ Potential issue | 🟡 Minor

Correct typo and leading space in MAX_FILE_SIZE message.

There’s a leading space and “nagyom” typo.

✏️ Suggested fix
-msgstr " fájl nagyom mint a MAX_FILE_SIZE."
+msgstr "A fájl nagyobb, mint a MAX_FILE_SIZE."
languages/another-wordpress-classifieds-plugin-hu_HU.po-10389-10392 (1)

10389-10392: ⚠️ Potential issue | 🟡 Minor

Localize datepicker “Prev” label.

The previous-month label is still English.

✏️ Suggested fix
-msgstr "&#x3c;Prev"
+msgstr "&#x3c;Előző"
languages/another-wordpress-classifieds-plugin-pt_BR.po-4502-4504 (1)

4502-4504: ⚠️ Potential issue | 🟡 Minor

Polish the payment-failure translation.

Current msgstr is ungrammatical.

🛠️ Suggested fix
 msgid "Customer attempt to pay has failed"
-msgstr "tentativa cliente a pagar falhou"
+msgstr "A tentativa de pagamento do cliente falhou."
languages/another-wordpress-classifieds-plugin-pt_BR.po-3672-3711 (1)

3672-3711: ⚠️ Potential issue | 🟡 Minor

Fix typo and missing translation in validation messages.

Line 3694 has a stray !', and Line 3696 is missing its translation.

🛠️ Suggested fix
 msgid "Please enter a valid amount."
-msgstr "Por favor insira um Valor válido!'"
+msgstr "Por favor insira um valor válido."
@@
 msgid ""
 "You have reached the maximum allowed categories for the selected fee plan."
 msgstr ""
+"Você atingiu o número máximo de categorias permitidas para o plano de tarifa "
+"selecionado."
languages/another-wordpress-classifieds-plugin-es_ES.po-5244-5252 (1)

5244-5252: ⚠️ Potential issue | 🟡 Minor

Complete and correct the new PayPal verification messages.

These entries are either empty or still describe a different error, so users will see English or misleading text during the new verification flow.

Proposed fix
-#, fuzzy
 msgid "Verifying Your Payment"
-msgstr "Pago Pendiente"
+msgstr "Verificando su pago"

 msgid ""
 "Your payment is being verified with PayPal. This usually takes just a few "
 "seconds. The page will refresh automatically."
-msgstr ""
+msgstr ""
+"Su pago se está verificando con PayPal. Esto suele tardar solo unos "
+"segundos. La página se actualizará automáticamente."

-#, fuzzy
 msgid ""
 "There was an error verifying your payment with PayPal. Please wait a moment "
 "and refresh this page."
-msgstr ""
-"Se ha producido un error al procesar su solicitud de pago. Inténtelo de "
-"nuevo o póngase en contacto con y Administrador."
+msgstr ""
+"Hubo un error al verificar su pago con PayPal. Por favor, espere un momento "
+"y actualice esta página."

Also applies to: 5432-5442

languages/another-wordpress-classifieds-plugin-fr_FR.po-5291-5299 (1)

5291-5299: ⚠️ Potential issue | 🟡 Minor

Update the French message to reflect the new PayPal verification guidance.

The msgid now mentions PayPal verification and refreshing the page; the current msgstr still directs users to retry/contact admin, which changes the guidance.

✍️ Suggested update
-msgstr ""
-"Une erreur est survenue pendant le traitement du paiement. Veuillez "
-"réessayer ou contactez l’administrateur du site."
+msgstr ""
+"Une erreur est survenue lors de la vérification de votre paiement PayPal. "
+"Veuillez patienter un moment puis rafraîchir cette page."
languages/another-wordpress-classifieds-plugin-fr_FR.po-5489-5494 (1)

5489-5494: ⚠️ Potential issue | 🟡 Minor

Translate the new “payment is being verified” status text.

Leaving this msgstr empty causes an English fallback during payment verification.

✍️ Suggested translation
-msgstr ""
+msgstr "Votre paiement est en cours de vérification par PayPal. Cela prend généralement quelques secondes. La page se rafraîchira automatiquement."

Comment on lines +10062 to 10075
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prec"

#: includes/class-awpcp.php:1466
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Succ&#x3e;"

#: includes/class-awpcp.php:1472
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "Europe/Rome"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix datepicker first-day-of-week translation.

The msgid expects a numeric weekday index ("0" for Sunday, "1" for Monday, etc.). Translating it to a timezone string ("Europe/Rome") will break the datepicker locale behavior.

🐛 Suggested fix
 msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
 msgid "0"
-msgstr "Europe/Rome"
+msgstr "1"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prec"
#: includes/class-awpcp.php:1466
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Succ&#x3e;"
#: includes/class-awpcp.php:1472
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "Europe/Rome"
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prec"
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Succ&#x3e;"
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "1"
🤖 Prompt for AI Agents
In `@languages/another-wordpress-classifieds-plugin-it_IT.po` around lines 10062 -
10075, Replace the incorrect translation for the datepicker first-day-of-week
entry: locate the msgctxt "[UI Datepicker] The first day of the week, Sun = 0,
Mon = 1, ..." where msgid is "0" and remove the timezone string in msgstr
("Europe/Rome"), replacing it with the correct numeric weekday index (e.g., "0"
for Sunday or the intended numeric value) so the datepicker receives a number
rather than a timezone string.

Comment on lines +11066 to 11079
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prev"

#: includes/class-awpcp.php:1466
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Next&#x3e;"

#: includes/class-awpcp.php:1472
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "."
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# First, locate and examine the .po file
find . -name "*pt_BR.po" -o -name "another-wordpress-classifieds-plugin-pt_BR.po" 2>/dev/null | head -20

Repository: Strategy11/another-wordpress-classifieds-plugin

Length of output: 148


🏁 Script executed:

#!/bin/bash
# Once we find the file, check the content around the specified lines
if [ -f "languages/another-wordpress-classifieds-plugin-pt_BR.po" ]; then
  echo "File found. Checking lines 11066-11079:"
  sed -n '11066,11079p' "languages/another-wordpress-classifieds-plugin-pt_BR.po"
fi

Repository: Strategy11/another-wordpress-classifieds-plugin

Length of output: 527


🌐 Web query:

jQuery UI datepicker regional settings firstDay parameter pt-BR Portuguese Brazil locale

💡 Result:

In jQuery UI Datepicker, firstDay is an integer that sets the first day of the week (0 = Sunday, 1 = Monday, etc.). [1]

For the Portuguese (Brazil) locale (pt-BR), the official i18n file sets:

  • firstDay: 0 (week starts on Sunday) [2]

Use the locale (after loading the i18n file):

$.datepicker.setDefaults($.datepicker.regional["pt-BR"]);
$("#dt").datepicker();

Or per-instance (and optionally override the locale’s firstDay):

$("#dt").datepicker({
  ...$.datepicker.regional["pt-BR"],
  firstDay: 1 // force Monday if you prefer
});

Sources: [1] [2]


🏁 Script executed:

#!/bin/bash
# Check for other locale files to see the expected pattern
ls -la languages/*.po | head -20

Repository: Strategy11/another-wordpress-classifieds-plugin

Length of output: 1053


🏁 Script executed:

#!/bin/bash
# Search for similar firstDay entries in other locale files
rg "The first day of the week" languages/ -A 3 | head -40

Repository: Strategy11/another-wordpress-classifieds-plugin

Length of output: 2671


Use numeric value 0 for the datepicker firstDay setting in pt-BR locale.

Line 11078 currently has msgstr ".", which parses to NaN in JavaScript and breaks jQuery UI datepicker's firstDay parameter (requires 0–6). The official Portuguese (Brazil) locale uses firstDay: 0 (Sunday first). All other locale files in this repository correctly use numeric values.

🛠️ Suggested fix
 msgid "0"
-msgstr "."
+msgstr "0"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prev"
#: includes/class-awpcp.php:1466
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Next&#x3e;"
#: includes/class-awpcp.php:1472
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "."
#: includes/class-awpcp.php:1473
msgctxt "[UI Datepicker] Display text for previous month link"
msgid "&#x3c;Prev"
msgstr "&#x3c;Prev"
#: includes/class-awpcp.php:1474
msgctxt "[UI Datepicker] Display text for next month link"
msgid "Next&#x3e;"
msgstr "Next&#x3e;"
#: includes/class-awpcp.php:1480
msgctxt "[UI Datepicker] The first day of the week, Sun = 0, Mon = 1, ..."
msgid "0"
msgstr "0"
🤖 Prompt for AI Agents
In `@languages/another-wordpress-classifieds-plugin-pt_BR.po` around lines 11066 -
11079, The msgstr for the msgctxt "[UI Datepicker] The first day of the week,
Sun = 0, Mon = 1, ..." currently contains "." which parses as NaN; change that
msgstr from "." to the numeric string "0" so the datepicker firstDay setting is
correctly parsed as 0 (Sunday) by JavaScript.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run analysis Run the phpcs run tests Run the unit tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant