我知道您可以通过定义自己的WooCommerce核心模板并将它们命名为核心模板来覆盖它们。但是我想做的是定制一些管理视图,即Order屏幕。
我想要调整的文件是/includes/admin/meta-boxes/views/html-order-item.php,但显然我不想应用核心文件中的更改,因为我的更改将在下一个WooCommerce更新中丢失。
我是否可以创建自己的html-order-item.php文件,而不是核心文件呢?我已经找了很久了,但我想不出来.
谢谢!
发布于 2014-10-10 15:29:48
您将很难从这些屏幕上删除功能。这将需要替换过多的代码,插件才能在以后升级。我认为你可以隐藏或改变一些css样式的外观。
您可以做的是在各种do_action调用中添加您自己的特性。例如,在包含您提到的文件的html-order-items.php中,您有以下操作调用:
include( 'html-order-item.php' );
do_action( 'woocommerce_order_item_' . $item['type'] . '_html', $item_id, $item );你可以在那里搭上你自己的田地。
在html-order-item.php中,还有三个钩子:
<?php do_action( 'woocommerce_before_order_itemmeta', $item_id, $item, $_product ) ?>
<?php do_action( 'woocommerce_after_order_itemmeta', $item_id, $item, $_product ) ?>
<?php do_action( 'woocommerce_admin_order_item_values', $_product, $item, absint( $item_id ) ); ?>您还可能需要查找保存数据的钩子。
编辑:将项添加到要跳过的元字段列表:
function remove_order_item_meta_fields( $fields ) {
$fields[] = '_subscription_period';
$fields[] = '_subscription_interval';
return $fields;
}
add_filter( 'woocommerce_hidden_order_itemmeta', 'remove_order_item_meta_fields' );https://stackoverflow.com/questions/26301214
复制相似问题