Added text for failed and successful orders
This commit is contained in:
@@ -9,6 +9,103 @@ if (!defined('ABSPATH')) {
|
|||||||
|
|
||||||
class WC_Aluxpay_Payment_Gateway extends WC_Payment_Gateway {
|
class WC_Aluxpay_Payment_Gateway extends WC_Payment_Gateway {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reusable: HTML notice for Thank You page + HTML emails
|
||||||
|
*/
|
||||||
|
protected function get_generic_notice_html(): string {
|
||||||
|
// Keep inline styles for email clients; translate strings
|
||||||
|
$html .= '<p><strong>' . esc_html__( 'Thank you for your payment!', 'aluxpay-payment-gateway' ) . '</strong> ';
|
||||||
|
$html .= esc_html__( 'Your order has been successfully processed, and a confirmation email has been sent from our webstore.', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<h5>' . esc_html__( 'Important Note:', 'aluxpay-payment-gateway' ) . '</h5>';
|
||||||
|
$html .= '<p>' . esc_html__( "Because of the nature of our business and how our website integrates with PayPal, you’ll also receive a PayPal payment confirmation email. That email will display a generic product name instead of the specific item(s) you purchased.", 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<p>' . esc_html__( 'Rest assured — your order is fully confirmed, and the webstore confirmation email contains the correct details of your purchase.', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<p>' . esc_html__( "If you have any questions or need assistance, please don’t hesitate to contact our support team.", 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
// For frontend we can allow basic tags; for email we echo directly.
|
||||||
|
$allowed = array(
|
||||||
|
'p' => array('style'=>true),
|
||||||
|
'h5' => array('style'=>true),
|
||||||
|
'strong' => array(),
|
||||||
|
);
|
||||||
|
return wp_kses( $html, $allowed );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reusable: Plain-text version for plain emails
|
||||||
|
*/
|
||||||
|
protected function get_generic_notice_plain(): string {
|
||||||
|
$lines = array(
|
||||||
|
__( 'Thank you for your payment! Your order has been successfully processed, and a confirmation email has been sent from our webstore.', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( 'Important Note:', 'aluxpay-payment-gateway' ),
|
||||||
|
__( "Because of the nature of our business and how our website integrates with PayPal, you’ll also receive a PayPal payment confirmation email. That email will display a generic product name instead of the specific item(s) you purchased.", 'aluxpay-payment-gateway' ),
|
||||||
|
__( 'Rest assured — your order is fully confirmed, and the webstore confirmation email contains the correct details of your purchase.', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( "If you have any questions or need assistance, please don’t hesitate to contact our support team.", 'aluxpay-payment-gateway' ),
|
||||||
|
);
|
||||||
|
return implode( PHP_EOL, $lines ) . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reusable: HTML notice for Failed Order emails
|
||||||
|
*/
|
||||||
|
protected function get_failed_notice_html(): string {
|
||||||
|
$html = '';
|
||||||
|
$html .= '<p><strong>' . esc_html__( 'Payment Failed', 'aluxpay-payment-gateway' ) . '</strong></p>';
|
||||||
|
$html .= '<p>' . esc_html__( 'Unfortunately, your payment could not be processed. This may have occurred for one of the following reasons:', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<ul style="margin-left: 20px;">';
|
||||||
|
$html .= '<li>' . esc_html__( 'Insufficient funds in your account', 'aluxpay-payment-gateway' ) . '</li>';
|
||||||
|
$html .= '<li>' . esc_html__( 'Payment was cancelled during the process', 'aluxpay-payment-gateway' ) . '</li>';
|
||||||
|
$html .= '<li>' . esc_html__( 'Payment method declined the transaction', 'aluxpay-payment-gateway' ) . '</li>';
|
||||||
|
$html .= '<li>' . esc_html__( 'Technical issue during payment processing', 'aluxpay-payment-gateway' ) . '</li>';
|
||||||
|
$html .= '</ul>';
|
||||||
|
|
||||||
|
$html .= '<p>' . esc_html__( 'Your order has not been completed and no charges have been made to your account.', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<h5>' . esc_html__( 'What to do next:', 'aluxpay-payment-gateway' ) . '</h5>';
|
||||||
|
$html .= '<p>' . esc_html__( 'You can try placing your order again by visiting our website. If you continue to experience issues, please contact us for assistance.', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$html .= '<p>' . esc_html__( 'We apologize for any inconvenience this may have caused.', 'aluxpay-payment-gateway' ) . '</p>';
|
||||||
|
|
||||||
|
$allowed = array(
|
||||||
|
'p' => array('style'=>true),
|
||||||
|
'h5' => array('style'=>true),
|
||||||
|
'ul' => array('style'=>true),
|
||||||
|
'li' => array(),
|
||||||
|
'strong' => array(),
|
||||||
|
);
|
||||||
|
return wp_kses( $html, $allowed );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reusable: Plain-text version for Failed Order emails
|
||||||
|
*/
|
||||||
|
protected function get_failed_notice_plain(): string {
|
||||||
|
$lines = array(
|
||||||
|
__( 'Payment Failed', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( 'Unfortunately, your payment could not be processed. This may have occurred for one of the following reasons:', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
'- ' . __( 'Insufficient funds in your account', 'aluxpay-payment-gateway' ),
|
||||||
|
'- ' . __( 'Payment was cancelled during the process', 'aluxpay-payment-gateway' ),
|
||||||
|
'- ' . __( 'Payment method declined the transaction', 'aluxpay-payment-gateway' ),
|
||||||
|
'- ' . __( 'Technical issue during payment processing', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( 'Your order has not been completed and no charges have been made to your account.', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( 'What to do next:', 'aluxpay-payment-gateway' ),
|
||||||
|
__( 'You can try placing your order again by visiting our website. If you continue to experience issues, please contact us for assistance.', 'aluxpay-payment-gateway' ),
|
||||||
|
'',
|
||||||
|
__( 'We apologize for any inconvenience this may have caused.', 'aluxpay-payment-gateway' ),
|
||||||
|
);
|
||||||
|
return implode( PHP_EOL, $lines ) . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
@@ -42,8 +139,12 @@ class WC_Aluxpay_Payment_Gateway extends WC_Payment_Gateway {
|
|||||||
add_action('woocommerce_api_' . $this->id, array($this, 'webhook_handler'));
|
add_action('woocommerce_api_' . $this->id, array($this, 'webhook_handler'));
|
||||||
add_action('woocommerce_thankyou_' . $this->id, array($this, 'thankyou_page'));
|
add_action('woocommerce_thankyou_' . $this->id, array($this, 'thankyou_page'));
|
||||||
|
|
||||||
// Customer Emails
|
// Customer Emails - Success
|
||||||
add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3);
|
add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3);
|
||||||
|
|
||||||
|
// Customer Emails - Failed Orders
|
||||||
|
add_action('woocommerce_email_before_order_table', array($this, 'failed_email_instructions'), 10, 3);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -233,24 +334,58 @@ class WC_Aluxpay_Payment_Gateway extends WC_Payment_Gateway {
|
|||||||
*/
|
*/
|
||||||
public function thankyou_page($order_id) {
|
public function thankyou_page($order_id) {
|
||||||
|
|
||||||
if ($this->description) {
|
/**if ($this->description) {
|
||||||
echo wpautop(wptexturize($this->description));
|
echo wpautop(wptexturize($this->description));
|
||||||
}
|
}*/
|
||||||
|
|
||||||
$order = wc_get_order($order_id);
|
$order = wc_get_order($order_id);
|
||||||
|
|
||||||
if ($order && $order->get_status() === 'processing') {
|
if ($order && $order->get_status() === 'processing') {
|
||||||
echo '<p>' . __('Your payment has been received and your order is being processed.', 'aluxpay-payment-gateway') . '</p>';
|
echo $this->get_generic_notice_html();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add content to the WC emails
|
* Add content to the WC emails for successful orders
|
||||||
*/
|
*/
|
||||||
public function email_instructions($order, $sent_to_admin, $plain_text = false) {
|
public function email_instructions($order, $sent_to_admin, $plain_text = false) {
|
||||||
|
|
||||||
if ($this->description && !$sent_to_admin && $this->id === $order->get_payment_method()) {
|
/** if ($this->description && !$sent_to_admin && $this->id === $order->get_payment_method()) {
|
||||||
echo wpautop(wptexturize($this->description)) . PHP_EOL;
|
* echo wpautop(wptexturize($this->description)) . PHP_EOL;
|
||||||
|
*} */
|
||||||
|
|
||||||
|
if ( $sent_to_admin ) return; // customers only
|
||||||
|
if ( ! $order instanceof WC_Order ) return;
|
||||||
|
if ( $order->get_payment_method() !== $this->id ) return;
|
||||||
|
|
||||||
|
// Only show for completed/processing orders
|
||||||
|
if ( ! in_array( $order->get_status(), array( 'processing', 'completed' ) ) ) return;
|
||||||
|
|
||||||
|
// Pick the right format for the email renderer
|
||||||
|
if ( $plain_text ) {
|
||||||
|
echo $this->get_generic_notice_plain();
|
||||||
|
} else {
|
||||||
|
echo $this->get_generic_notice_html();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add content to the WC emails for failed orders
|
||||||
|
*/
|
||||||
|
public function failed_email_instructions($order, $sent_to_admin, $plain_text = false) {
|
||||||
|
|
||||||
|
if ( $sent_to_admin ) return; // customers only
|
||||||
|
if ( ! $order instanceof WC_Order ) return;
|
||||||
|
if ( $order->get_payment_method() !== $this->id ) return;
|
||||||
|
|
||||||
|
// Only show for failed orders
|
||||||
|
if ( $order->get_status() !== 'failed' ) return;
|
||||||
|
|
||||||
|
// Pick the right format for the email renderer
|
||||||
|
if ( $plain_text ) {
|
||||||
|
echo $this->get_failed_notice_plain();
|
||||||
|
} else {
|
||||||
|
echo $this->get_failed_notice_html();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user