选择不需要付款方式。也就是说,在结帐页面上将“选择”更改为“复选框”。即使未选择付款方式,也可以下订单。
我怀疑这还不够,因为有可能,如果您不选择付款方式,则会导致错误或问题。
因此,我想添加无需选择付款方式即可创建订单的功能。并且,因此,系统应该理解,对于订单,必须分配一个状态,例如“保留”。
wp-content\plugins\woocommerce\templates\checkout\payment-method.php
<li class="wc_payment_method payment_method_<?php echo $gateway->id; ?>">
<input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
<label for="payment_method_<?php echo $gateway->id; ?>">
<?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?>
</label>
<?php if ( $gateway->has_fields() || $gateway->get_description() ) : ?>
<div class="payment_box payment_method_<?php echo $gateway->id; ?>" <?php if ( ! $gateway->chosen ) : ?>style="display:none;"<?php endif; ?>>
<?php $gateway->payment_fields(); ?>
</div>
<?php endif; ?>
</li>
我有一个主意:
创建自定义付款方式-“默认”。如图中所示,只有两种付款方式在网站上可见(没有第三种付款方式)。然后重新定义插件模板并添加支票(如果未选中此复选框)选择,则保留“默认”。
答案 0 :(得分:3)
已更新:首先,您需要一个自定义付款网关:
您可以下载插件from HERE,进行安装并激活。
完成后,您将添加以下代码。它将隐藏此“自定义”付款方式,并默认在结帐页面上将其选中。
一些jQuery代码将允许在您现有的付款网关和此隐藏的“自定义”网关之间切换。
代码:
// set "custom" payment method as default on checkou and hide it
add_action( 'woocommerce_before_checkout_form', 'set_custom_payment_method_as_default_and_hide_it' );
function set_custom_payment_method_as_default_and_hide_it(){
// Set "custom" payment method as default
WC()->session->set('chosen_payment_method', 'custom');
// Hide this "Custom" payment method
?>
<style>
ul.wc_payment_methods > li.payment_method_custom { display: none !important; }
</style>
<?php
}
// switch between your existing payment gateways and the "custom" one
add_action( 'wp_footer', 'auto_switch_payment_methods' );
function auto_switch_payment_methods(){
// Only on checkout page
if ( ! is_checkout() ) return;
// jQuery code
?>
<script type="text/javascript">
jQuery(function($){
var a = 'form.checkout', b = 'input[name="payment_method"]', c = 'input#payment_method_custom';
$(a).on( 'click', b, function() {
if( ! $(c).is(':checked') && $(this).hasClass('on') ) {
$(c).prop("checked", true);
$(this).removeClass('on');
$('div.payment_box').each( function(){
$(this).hide('fast');
});
} else if( ! $(c).is(':checked') && ! $(this).hasClass('on') ) {
$(b).each( function(){
$(this).removeClass('on');
});
$(this).addClass('on')
}
});
});
</script>
<?php
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。
答案 1 :(得分:0)
add_filter('woocommerce_cart_needs_payment','__return_false');
请在已激活主题的functions.php文件中添加“上方过滤器”。