【发布时间】:2019-08-24 09:40:06
【问题描述】:
也许你可以帮我解决这个问题。如果客户选择使用信用卡付款,我需要从新订单电子邮件中删除银行帐户信息 (BACS),如果他们选择直接银行转账,我需要保留它。现在,信息出现在两封电子邮件中。 (信用卡支付和直接转账)。我正在使用此代码:
// Add your own action for the bank instructions
add_action( 'woocommerce_email_before_order_table',
'prefix_email_instructions', 9, 3 );
function prefix_email_instructions( $order, $sent_to_admin, $plain_text =
false ) {
// Get the gateway object
$gateways = WC_Payment_Gateways::instance();
$available_gateways = $gateways->get_available_payment_gateways();
$gateway = isset( $available_gateways['bacs'] ) ?
$available_gateways['bacs'] : false;
// We won't do anything if the gateway is not available
if ( false == $gateway ) {
return;
}
// Add only the email instructions
if ( ! $sent_to_admin && 'bacs' === $order->payment_method && $order-
>has_status( 'on-hold' ) ) {
if ( $gateway->instructions ) {
echo wpautop( wptexturize( $gateway->instructions ) )
. PHP_EOL;
}
}
}
// Remove the original bank details
add_action( 'init', 'prefix_remove_bank_details', 100 );
function prefix_remove_bank_details() {
// Do nothing, if WC_Payment_Gateways does not exist
if ( ! class_exists( 'WC_Payment_Gateways' ) ) {
return;
}
// Get the gateways instance
$gateways = WC_Payment_Gateways::instance();
// Get all available gateways, [id] => Object
$available_gateways = $gateways->get_available_payment_gateways();
if ( isset( $available_gateways['bacs'] ) ) {
// If the gateway is available, remove the action hook
remove_action( 'woocommerce_email_before_order_table', array(
$available_gateways['bacs'], 'email_instructions' ), 10, 3 );
}
}
但信息仍然存在。知道如何解决这个问题吗?
【问题讨论】:
-
来自@mujuonly 的无用版本。只是改变一些大写字母并删除最后的“谢谢”? :P
-
你想恢复它吗?
-
没有朋友,但它的版本很没用。我可以理解您或其他人是否编辑了代码或其他有用的东西,但不是几个大写字母,并删除了我帖子末尾的“谢谢”。 (寻求帮助的人和愿意帮助的人之间的礼貌只是礼貌)。 :)
-
请查看以下答案
标签: php wordpress woocommerce payment bank