【发布时间】:2015-04-13 09:44:06
【问题描述】:
我正在为 WooCommerce 开发一个插件。我想覆盖管理员的订单详细信息模板。我已经在https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/ 上阅读过,但我仍然不明白如何覆盖管理员的订单详细信息模板。以下是我的代码:
if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) {
if ( ! class_exists( 'Test' ) ) {
load_plugin_textdomain( 'test', false, dirname( plugin_basename( __FILE__ ) ) . '/' );
}
}
class Test {
public function __construct() {
add_action( 'init', array( $this, 'include_template_functions' ), 20 );
add_action( 'woocommerce_init', array( $this, 'woocommerce_loaded' ) );
add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
do_action( 'woocommerce_admin_order_data_after_order_details', 'hello' );
}
public function hello() {
echo "order detail template has loaded";
}
public function include_template_functions() {
include( 'woocommerce-template.php' );
echo "template has loaded";
}
public function woocommerce_loaded() {
}
public function plugins_loaded() {
}
}
$GLOBALS['wc_acme'] = new Test();
它没有调用与woocommerce_admin_order_data_after_order_details关联的钩子。
任何人都可以建议或分享一些通过插件编辑订单详细信息模板的示例。请注意,我指的是管理员内部的订单详细信息模板,管理员可以从列表中查看任何订单的详细信息。
【问题讨论】:
-
我不确定您指的是哪个模板。可以截图吗?如果可能,您要添加的屏幕截图是什么? Justin 的教程用于覆盖前端 WooCommerce 模板。看起来你根本没有关注它,所以我可能可以提供更多帮助来澄清一下。
-
其实我也试过贾斯汀教程,但是没用。
-
他的教程就其目的而言工作得很好……它覆盖了前端模板。向您发布的屏幕截图添加数据完全是另一回事。你具体想改变什么?我可以向您展示如何在上面的屏幕截图中添加额外的数据。
-
我想为新数据添加额外的部分。实际上我在自己的服务器上有一个返回地理位置的 API,我想在订单项部分之前显示该地理位置。
标签: wordpress woocommerce