我一直试图在我的woocommerce代码中添加过滤器,以防止表单将客户电子邮件地址发送到paypal。 (我使用paypal标准)。据推测,这将导致信用卡表格成为默认显示,而不是登录到paypal'选项。
我在这里找到了这段代码: 应该执行此操作的Paypal Payment Standard default enter card details,但我不确定将代码放在何处。这是我的/templates/checkout/form-checkout.php无法正常工作:
<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( $get_checkout_url ); ?>" enctype="multipart/form-data">
<?php if ( sizeof( $checkout->checkout_fields ) > 0 ) : ?>
<?php do_action( 'woocommerce_checkout_before_customer_details' ); ?>
<div class="col2-set" id="customer_details">
<div class="col-1">
<?php do_action( 'woocommerce_checkout_billing' ); ?>
</div>
<div class="col-2">
<?php do_action( 'woocommerce_checkout_shipping' ); ?>
</div>
</div>
<?php function smw_woo_paypal_args($args) {
$args['email'] = '';
return $args;
}
add_filter( 'woocommerce_paypal_args', 'smw_woo_paypal_args', 99);
?>
<?php do_action( 'woocommerce_checkout_after_customer_details' ); ?>
<h3 id="order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3>
<?php endif; ?>
<div id="order_review" class="woocommerce-checkout-review-order">
<?php do_action( 'woocommerce_checkout_order_review' ); ?>
</div>
</form>
&#13;
有关放置此过滤器的位置的任何想法?
答案 0 :(得分:0)
将过滤器放在主题的functions.php文件中。这将使其正常运行,并且应该按预期将电子邮件留空。
那就是说,我认为这不会解决你的问题。付款标准结帐页面通常是基于cookie的,如果有任何用户登录了正在使用的浏览器上的帐户,它将假定任何PayPal结账将使用该帐户并默认使用该方式。
如果您要清除浏览器缓存/ cookie,或者只是使用全新的干净浏览器,您可能会看到访客结帐选项更加突出。
但是,如果您要使用Express Checkout API,则可以更轻松地强制执行此操作。您正在使用WooCommerce,因此结帐PayPal for WooCommerce,其中包括Express Checkout,它是免费的。有些设置专门用于启用插件中内置的完整访客结帐/信用卡选项。