WooCommerce预订:在购物车和结帐中添加和重新排序商品数据

时间:2017-02-20 14:13:06

标签: php wordpress woocommerce cart woocommerce-bookings

我想显示预订的结束日期以及开始日期。到目前为止,我有以下内容:

add_filter( 'woocommerce_get_item_data', 'display_booking_date', 10, 2 );
function display_booking_date( $item_data, $cart_item ){

    if ( ! empty( $cart_item['booking'] ) ) {

        $date_format = apply_filters( 'woocommerce_bookings_date_format', wc_date_format() );
        $end_date = apply_filters( 'woocommerce_bookings_get_end_date_with_time', date_i18n( $date_format, $cart_item['booking']['_end_date'] ) );

        $item_data[] = array(
            'key'    => __( 'End Date', 'your-textdomain' ),
            'value'   => $cart_item['booking']['_end_date'],
            'display' => $end_date,
        );
    }
    return $item_data;
}

这允许我显示预订的结束日期。但是,这是在任何其他元数据之后,这不是我想要的。有没有办法可以:

1)更改结束日期的显示位置,使其显示在“开始日期”之后,而不是显示在所有其他元数据之后

2)更好的方法是将开始日期和结束日期放在同一位元数据中。

谢谢!

1 个答案:

答案 0 :(得分:2)

  

代码轻微更新

是的,这是可能的,但您必须知道“开始日期”的项目数据 key ...在此,我重新排序该项目数据。

  

但不可能将开始日期和结束日期放在一起(因为您只能在数组1键,1值和1显示中)。可能的是将两个值和两个显示合并在一起。

如果需要,要显示 $item_data 参数的原始数据,您可以在 {{之前使用功能中的 print_r($item_data); 1}} 最后。

以下是代码:

return

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

代码使用其他设置进行测试,应该适合您。