WooCommerce Hook:内容获取显示两次,而不是在订单总数之后

时间:2018-10-06 作者:manifestor

我已经覆盖了WooCommerce的review-order.php 稍微改变一下结账方式。现在每次我在钩子上加东西woocommerce_review_order_after_order_total 内容显示两次,在整个块之前,而不是在订单总数之后:

function output_payment_button() {
    $order_button_text = apply_filters( \'woocommerce_order_button_text\', __( \'Place order\', \'woocommerce\' ) );
echo \'<input type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="\' . esc_attr( $order_button_text ) . \'" data-value="\' . esc_attr( $order_button_text ) . \'" />\';
}
add_action( \'woocommerce_review_order_after_order_total\', \'output_payment_button\' );
还添加了一个简单的<?php echo("Hello World"); ?> 至年底review-order.php 使其出现两次。有人能解释一下我做错了什么吗?

2 个回复
SO网友:Tony

如果对任何人都有帮助,do\\u操作(“woocommerce\\u review\\u order\\u after\\u order\\u total”)将在模板中的表中间调用,并期望add\\u操作挂钩回显表行。如果您只是回显文本或输入(如问题中所述),则它会出现在表之外,出现在表之前而不是之后,并且可能会在ajax更新中落后,因此会多次出现。因此,在add\\u操作挂钩中可以执行以下操作(该表有2列):

echo \'<tr><td colspan="2">My after totals text</td></tr>\';

SO网友:Antonio

如果你再检查一下文件review-order.php 您将看到您更换了挂钩woocommerce_review_order_before_order_total 具有woocommerce_review_order_after_order_total, 现在可能出现了两次。

如果你两次看到你挂在钩子上的东西,那只是因为钩子用了两次。

结束

相关推荐

Adding custom Bulk Actions

我一直在寻找将自定义批量操作添加到类别页面的方法。他们中的大多数人说,不可能用干净的方式来做这件事,因为这件事没有挂钩。大多数解决方案包括在客户端使用JS通过DOM操作添加选项。虽然这是可行的,但它仍然是一个相当丑陋的解决方案。我读过的大多数文章都是2年前的,所以我一直在想,从那时起到现在,这个问题已经添加了一个新的挂钩或解决方案,以便对这个问题有一个更及时的解决方案。