如何在WooCommerce中将“创建新帐户”提升到更高

时间:2013-12-02 作者:Nikola

如果这是一个愚蠢的问题,我很抱歉,但我似乎找不到一种方法来强制“创建新帐户”复选框出现在所有其他选项之前。我看了看form-checkout.php 文件位于theme/woocommerce/checkout 文件夹,但无法确定应该查找哪个文件,因此非常感谢您的帮助。请参考我的表格检查。php如下所示:

if ( ! defined( \'ABSPATH\' ) ) exit; // Exit if accessed directly
global $woocommerce;
$woocommerce->show_messages();
do_action( \'woocommerce_before_checkout_form\', $checkout );
// If checkout registration is disabled and not logged in, the user cannot checkout
if ( ! $checkout->enable_signup && ! $checkout->enable_guest_checkout && ! is_user_logged_in() ) {
    echo apply_filters( \'woocommerce_checkout_must_be_logged_in_message\', __( \'You must be logged in to checkout.\', \'woocommerce\' ) );
    return;
}
// filter hook for include new pages inside the payment method
$get_checkout_url = apply_filters( \'woocommerce_get_checkout_url\', $woocommerce->cart->get_checkout_url() ); ?>
<form name="checkout" method="post" class="checkout" action="<?php echo esc_url( $get_checkout_url ); ?>">
    <?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 do_action( \'woocommerce_checkout_after_customer_details\' ); ?>
        <h3 id="order_review_heading"><?php _e( \'Your order\', \'woocommerce\' ); ?></h3>
    <?php endif; ?>
    <?php do_action( \'woocommerce_checkout_order_review\' ); ?>
</form>
<?php do_action( \'woocommerce_after_checkout_form\', $checkout ); ?>
enter image description here

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

这可以通过自定义form-billing.php 模板,只需移动此部分:

<?php if (!is_user_logged_in() && get_option(\'woocommerce_enable_signup_and_login_from_checkout\')=="yes") : ?>
//more code..
<?php endif; ?>
就在此行之前:

<?php do_action(\'woocommerce_before_checkout_billing_form\', $checkout); ?>

结束

相关推荐

private functions in plugins

我开发了两个插件,其中一个功能相同(相同的名称,相同的功能)。当试图激活两个插件时,Wordpress会抛出一个错误,因为它不允许我以相同的名称定义函数两次。有没有一种方法可以使这个函数只对插件私有,而不使用面向对象编程,也不简单地重命名函数?我不想使用OOP,因为我首先要学习它。此外,我不想重命名该函数,因为我可能也想在其他插件中使用它,而重命名感觉不太合适。