如果if语句为true,我想在我的functions.php中删除WooCommerce中的订单详细信息表。我已经搜索了很多,但不知道该怎么做。
这是WooCommerce wc-template-functions.php中包含文件的方式:
if ( ! function_exists( 'woocommerce_order_details_table' ) ) {
/**
* Displays order details in a table.
*
* @param mixed $order_id Order ID.
*/
function woocommerce_order_details_table( $order_id ) {
if ( ! $order_id ) {
return;
}
wc_get_template( 'order/order-details.php', array(
'order_id' => $order_id,
) );
}
}
所以我需要这样的东西:
if ( value != true ) {
hide_order_details();
}
答案 0 :(得分:2)
更新 (可选显示客户详细信息)
您可以在if语句(您将在其中定义{{1})中使用带有条件的以下挂钩函数(具有$order_id
作为可用参数) })
以下内容将删除“我的帐户”>“查看订单”中的订单明细表:
$value
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
1)包含客户详细信息:
2)没有客户详细信息:
答案 1 :(得分:1)
据我所知,模板中没有可以使用的钩子。
但是您可以轻松地在主题中覆盖order/order-details.php
模板,以添加有关是否输出明细表的条件。
有关的模板在woocommerce/templates/order/order-details.php
中。您可以将其复制到your-theme/woocommerce/templates/order/order-details.php
并进行所需的更改。
这样,您将不会编辑原始的Woocommerce文件,而是使用正确的方法来覆盖woocommerce输出。亲自检查order-details
模板,您会发现这里没有钩子可以防止输出表格。但是,一个简单的if
包装器将您的条件放在<table>
代码周围就可以解决问题。
编辑:woocommerce_order_item_visible
模板中使用的过滤器order-details-item.php
可以帮助您防止在订单明细表中显示某些行。但是该模板在订单明细表html中被调用,因此您无法使用它完全删除该表。
注意:我不确定此模板部件是否在其他地方使用。在这种情况下,您应该添加到显示条件中,以检查实际页面是否是您要应用更改的页面(客户仪表板订单详细信息)。如果该模板在其他地方使用,它将在您使用此模板的每个位置应用您的更改。