Skip to content

quality-debt: inc/checkout/class-checkout.php — PR #957 review feedback (high) #964

@superdav42

Description

@superdav42

Unactioned Review Feedback

Source PR: #957
File: inc/checkout/class-checkout.php
Reviewers: coderabbit
Findings: 1
Max severity: high


HIGH: coderabbit (coderabbitai[bot])

File: inc/checkout/class-checkout.php:1326
⚠️ Potential issue | 🟡 Minor

Use an explicit null check for date_expiration assignment.

Using a truthy check can incorrectly treat 0/'0' as “no date” and set a lifetime membership. Compare against null explicitly.

Suggested fix
-		$membership_data['date_expiration'] = $billing_start_date
-			? gmdate('Y-m-d 23:59:59', $billing_start_date)
+		$membership_data['date_expiration'] = null !== $billing_start_date
+			? gmdate('Y-m-d 23:59:59', (int) $billing_start_date)
 			: null;
📝 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.

		$membership_data['date_expiration'] = null !== $billing_start_date
			? gmdate('Y-m-d 23:59:59', (int) $billing_start_date)
			: null;
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@inc/checkout/class-checkout.php` around lines 1324 - 1326, The ternary for
assigning $membership_data['date_expiration'] uses a truthy check on
$billing_start_date which treats 0/'0' as no date; change the condition to an
explicit null check (e.g. compare $billing_start_date !== null) so that when
$billing_start_date is zero it still calls gmdate('Y-m-d 23:59:59',
$billing_start_date) and only assigns null when $billing_start_date is actually
null; update the expression where $membership_data['date_expiration'] is set
(the line that calls gmdate with $billing_start_date) accordingly.

View comment



Auto-generated by quality-feedback-helper.sh scan-merged. Review each finding and either fix the code or dismiss with a reason.


aidevops.sh v3.13.5 automated scan.

Metadata

Metadata

Assignees

Labels

origin:workerAuto-created by pulse labelless backfill (t2112)priority:highHigh severity — significant quality issuequality-debtUnactioned review feedback from merged PRssource:review-feedbackAuto-created by quality-feedback-helper.sh

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions