我必须在订单审核之上的Woocommerce网站的结帐页面中移动付款方式,但我不知道如何操作。问题是,我尝试使用以下代码:
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle!=null){
Object[] smsExtras = (Object[]) bundle.get("pdus");
String format = (String)bundle.get("format");
String strMessage = "";
for (Object smsExtra : smsExtras) {
SmsMessage smsMessage;
if (Build.VERSION.SDK_INT < 23){
smsMessage = SmsMessage.createFromPdu((byte[]) smsExtra);
}else {
smsMessage = SmsMessage.createFromPdu((byte[]) smsExtra, format);
}
String messageBody = smsMessage.getMessageBody();
String messageSource = smsMessage.getOriginatingAddress();
strMessage += "SMS from " + messageSource + " : " + messageBody;
Log.i(AppConstants.DEBUG_TAG, strMessage);
}
}
}
但是&#34;条款和条件&#34;文字和&#34;下订单&#34;按钮正在移动。我需要有付款选项,然后是订单审核,最后是&#34;条款和条件&#34;文字和&#34;下订单&#34;按钮。
我该怎么做?
答案 0 :(得分:4)
// includes/wc-template-hooks.php:214
add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
这将在您的主题或插件中。
// make sure the priority value is correct, running after the default priority.
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );
您的钩子应该在WC加载后运行;以便将其删除。
function theme_wc_setup() {
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );
}
add_action( 'after_setup_theme', 'theme_wc_setup' );
答案 1 :(得分:0)
模板覆盖是必要的(不可能仅编辑functions.php)。
实现目标的一种可能方式是:
打开新创建的payment.php文件,并在行<div class="form-row place-order">
之前添加自定义挂钩。例如:
<?php do_action( 'woocommerce_review_order_and_proceed' ); ?>
在您的子主题的functions.php中,添加以下代码以从其原始位置取消挂钩woocommerce_order_review动作,并将其挂钩到新创建的钩子:
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
add_action( 'woocommerce_review_order_and_proceed', 'woocommerce_order_review', 20 );