From a7a2bb2f6d2eeef9045d8197f7332d363adc1cc9 Mon Sep 17 00:00:00 2001
From: peptiderepo <273788462+peptiderepo@users.noreply.github.com>
Date: Wed, 17 Jun 2026 13:16:33 +0700
Subject: [PATCH] fix: resolve PR_Core_Settings_Renderer undefined constant
fatal (v0.7.1) (#24)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Squash-merge of PR #24 — QA APPROVED (2026-06-17 SHA ad2b1d9a)
Agent-Session: 2026-06-17-phase1-vps-runner-deploy-500fixes
---
CHANGELOG.md | 5 +
.../admin/class-pr-core-settings-renderer.php | 24 +--
includes/admin/class-pr-core-settings.php | 12 +-
peptide-repo-core.php | 4 +-
tests/unit/SettingsRendererTest.php | 204 ++++++++++++++++++
5 files changed, 229 insertions(+), 20 deletions(-)
create mode 100644 tests/unit/SettingsRendererTest.php
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e82bb74..3d2eb59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@ All notable changes to Peptide Repo Core are documented here.
Format: [Semantic Versioning](https://semver.org/).
+## [0.7.1] - 2026-06-17
+
+### Fixed
+- **Critical**: Settings page PHP Fatal `Undefined constant PR_Core_Settings_Renderer::OPTION_GROUP` (and 6 other `self::CONST` references). Root cause: PR #22 split the renderer into its own class but left all constants defined only on `PR_Core_Settings`. Fix: promote the 6 option-key private constants to `public const` on `PR_Core_Settings`; update renderer to reference them via `PR_Core_Settings::*`. Regression introduced in v0.7.0.
+
## [0.7.0] - 2026-06-16
### Changed
diff --git a/includes/admin/class-pr-core-settings-renderer.php b/includes/admin/class-pr-core-settings-renderer.php
index 2056e20..8c4b43c 100644
--- a/includes/admin/class-pr-core-settings-renderer.php
+++ b/includes/admin/class-pr-core-settings-renderer.php
@@ -35,8 +35,8 @@ class PR_Core_Settings_Renderer {
@@ -50,10 +50,10 @@ class PR_Core_Settings_Renderer {
* @return void
*/
public static function render_enabled_field(): void {
- $enabled = (bool) get_option( self::RELATED_ENABLED, true );
+ $enabled = (bool) get_option( PR_Core_Settings::RELATED_ENABLED, true );
printf(
' %s',
- esc_attr( self::RELATED_ENABLED ),
+ esc_attr( PR_Core_Settings::RELATED_ENABLED ),
checked( $enabled, true, false ),
esc_html__( 'Show related monographs on single peptide pages', 'peptide-repo-core' )
);
@@ -67,8 +67,8 @@ class PR_Core_Settings_Renderer {
public static function render_limit_field(): void {
printf(
'',
- esc_attr( self::RELATED_LIMIT ),
- absint( get_option( self::RELATED_LIMIT, 3 ) )
+ esc_attr( PR_Core_Settings::RELATED_LIMIT ),
+ absint( get_option( PR_Core_Settings::RELATED_LIMIT, 3 ) )
);
echo '' . esc_html__( 'Number of articles to display (1-6). Default: 3.', 'peptide-repo-core' ) . '
';
}
@@ -88,8 +88,8 @@ class PR_Core_Settings_Renderer {
* @return void
*/
public static function render_cadence_field(): void {
- $current = get_option( self::SCAN_CADENCE, 'weekly' );
- echo '