首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >woocommerce-bookings修改日期输出以包括每个产品或类别的自定义文本

woocommerce-bookings修改日期输出以包括每个产品或类别的自定义文本
EN

Stack Overflow用户
提问于 2016-05-16 02:54:57
回答 2查看 246关注 0票数 0

我需要这个过滤器只添加/触发一个特定的帖子id。

代码语言:javascript
复制
add_filter( 'woocommerce_get_item_data', 'woocommerce_cart_item_product', 10, 3 );

function woocommerce_cart_item_product( $item_data, $cart_item){

if ( ! empty( $cart_item['booking'] ) ) {
    $date_format = apply_filters( 'woocommerce_bookings_date_format', wc_date_format() );
    $time_format = apply_filters( 'woocommerce_bookings_time_format', ', ' . wc_time_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'    => __( 'for the week of', 'your-textdomain' ),
        'value'   => $cart_item['booking']['_end_date'],
        'display' => $end_date,
    );
}

return $item_data;

}

EN

回答 2

Stack Overflow用户

发布于 2016-05-16 05:22:44

$cart_item参数包含要添加到购物车中的产品的所有详细信息。

代码语言:javascript
复制
$cart_item[ 'product_id' ] // Product Id ( the product that is being added to cart )
$cart_item[ 'variation_id' ] // Variable product's id  ( if that product is a variable )
$cart_item[ 'variation' ] // Variation array ( if that product is a variable )
$cart_item[ 'quantity' ] // Line Item quantity
$cart_item[ 'data' ] // Post object of the product that is being added

所以你的代码应该是这样的。

代码语言:javascript
复制
add_filter( 'woocommerce_get_item_data', 'woocommerce_cart_item_product', 10, 2 );

function woocommerce_cart_item_product( $item_data, $cart_item ) {
    if ( !empty( $cart_item['booking'] ) && $cart_item["product_id"] == "Your Product Id" ) {
        $date_format = apply_filters( 'woocommerce_bookings_date_format', wc_date_format() );
        $time_format = apply_filters( 'woocommerce_bookings_time_format', ', ' . wc_time_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'    => __( 'for the week of', 'your-textdomain' ),
            'value'   => $cart_item['booking']['_end_date'],
            'display' => $end_date,
        );
    }
    return $item_data;
}

将该"Your Product Id"替换为您的特定帖子id。

票数 1
EN

Stack Overflow用户

发布于 2016-05-16 04:34:56

根据这段代码的执行位置,这应该是可行的:

代码语言:javascript
复制
    add_filter( 'woocommerce_get_item_data', 'woocommerce_cart_item_product', 10, 3 );

function woocommerce_cart_item_product( $item_data, $cart_item) {

    global $post;

    if ( ! empty( $cart_item['booking'] ) && $post->ID == YOURUNIQUEIDHERE ) {
        $date_format = apply_filters( 'woocommerce_bookings_date_format', wc_date_format() );
        $time_format = apply_filters( 'woocommerce_bookings_time_format', ', ' . wc_time_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'    => __( 'for the week of', 'your-textdomain' ),
            'value'   => $cart_item['booking']['_end_date'],
            'display' => $end_date,
        );
    }

    return $item_data;

}

我在if语句中添加了额外的Post ID检查。在这里你可以用你想要的任何帖子的ID替换YOURUNIQUEIDHERE。希望这能对你有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37242398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档