也许你能帮我解决这个问题。如果客户选择用信用卡付款,我需要从新订单电子邮件中删除银行账户信息(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 );
}
}但是信息仍然在那里。你知道怎么解决这个问题吗?
发布于 2019-04-04 12:21:55
这一行代码就足够了。它将从邮件中取消设置帐户详细信息。
add_filter('woocommerce_bacs_accounts', '__return_false');https://stackoverflow.com/questions/55485333
复制相似问题