问题描述
CREATE PROCEDURE sp_EAF_HEAT_COUNT(@START_DT DATETIME,@END_DT DATETIME)
AS
BEGIN
--Finding Count
DECLARE @CNT_HEADID = (SELECT
SELECT Count(distinct HEAT_ID) as NUM_HEATS
FROM [SSABDB].[L2].[EAF_HEAT] where PROCESS_UNIT = 'EAFA'
AND START_DT > @START_DT and END_DT < @END_DT)
-- Inserting the Count
INSERT INTO DASH.EAFA_HEAT_COUNT (START_DT,END_DT,FURNACE,NUM_HEATS) VALUES (@START_DT,@END_DT,'A',@CNT_HEADID)
END
但现在我需要为特定的优惠券“PAYPALMSI”做一个例外,我一直在用其他代码进行测试,它可以工作,但它们相互重叠,我如何同时使用它们?在第一个代码上为 paypalmsi 做一个例外?
add_filter('woocommerce_available_payment_gateways','applied_coupons_hide_payment_gateways',20,1 );
function applied_coupons_hide_payment_gateways( $available_gateways){
// Not in backend (admin)
if( is_admin() )
return $available_gateways;
// If at least a coupon is applied
if( sizeof( WC()->cart->get_applied_coupons() ) > 0 ){
// Loop through payment gateways
foreach ( $available_gateways as $gateway_id => $gateway ) {
// Remove all payment gateways except BACS (Bank Wire)
if( $gateway_id != 'stripe' )
if( $gateway_id != 'bacs' )
unset($available_gateways[$gateway_id]);
}
}
return $available_gateways;
}
解决方法
if( sizeof( WC()->cart->get_applied_coupons() ) > 0 ){
更改该行以同时检查 paypalmsi
是否是优惠券之一...
$coupons = WC()->cart->get_applied_coupons();
if( sizeof( $coupons ) > 0 && !in_array( 'paypalmsi',$coupons )){
,
感谢 PrestonPHX
如果使用优惠券,我使用此代码仅显示条纹和 bacs,不包括特定的“paypalmsi”
add_filter('woocommerce_available_payment_gateways','applied_coupons_hide_payment_gateways',20,1 );
function applied_coupons_hide_payment_gateways( $available_gateways){
// Not in backend (admin)
if( is_admin() )
return $available_gateways;
// If at least a coupon is applied
$coupons = WC()->cart->get_applied_coupons();
if( sizeof( $coupons ) > 0 && !in_array( 'paypalmsi',$coupons )){
// Loop through payment gateways
foreach ( $available_gateways as $gateway_id => $gateway ) {
// Remove all payment gateways except BACS (Bank Wire)
if( $gateway_id != 'stripe' )
if( $gateway_id != 'bacs' )
unset($available_gateways[$gateway_id]);
}
}
return $available_gateways;
}
然后我使用此代码在使用优惠券“paypalmsi”时仅显示贝宝。
add_filter('woocommerce_available_payment_gateways','unset_gatway_by_applied_coupons');
function unset_gatway_by_applied_coupons($available_gateways)
{
$coupons = WC()->cart->applied_coupons;
foreach ($coupons as $coupon) {
if ($coupon == 'paypalmsi') {
unset($available_gateways['stripe']);
unset($available_gateways['bacs']);
}
}
return $available_gateways;
}