php - 在 WooCommerce 中的购物车和结账页面上显示购买备注和属性

标签 php wordpress woocommerce cart checkout

以下代码有效,并将购买备注添加到购物车商品中。

add_filter( 'woocommerce_get_item_data', 'wc_test', 10, 2 );  
function wc_test ( $other_data, $cart_item ){
    $post_data = get_post( $cart_item['product_id'] );
    $other_data[] = array( 'name' =>  $post_data->_purchase_note );
    return $other_data;
}

但是,对于没有注释的产品,我总是得到“:”结果。

我还需要在注释下添加特定属性。

有什么建议吗?

最佳答案

  • 冒号会自动添加到键中。因为您只使用名称,所以这将添加在末尾。
  • 您可以使用get_purchase_note()

所以你得到:

// Display on cart & checkout pages
function filter_woocommerce_get_item_data( $item_data, $cart_item ) {
    // Get an instance of the WC_Product object
    $product = $cart_item['data'];
    
    // Get purchase_note
    $purchase_note = $product->get_purchase_note();
    
    // Get the product attribute value (adjust if desired)
    $attribute = $product->get_attribute( 'pa_color' );
    
    // When empty
    if ( empty ( $attribute ) ) {
        $attribute = '';
    }
    
    // NOT empty
    if ( ! empty( $purchase_note ) ) {
        $item_data[] = array(
            'key'     => __( 'Note', 'woocommerce' ),
            'value'   => $purchase_note . $attribute,
            'display' => $purchase_note . $attribute,
        );
    }
    
    return $item_data;
}
add_filter( 'woocommerce_get_item_data', 'filter_woocommerce_get_item_data', 10, 2 );

关于php - 在 WooCommerce 中的购物车和结账页面上显示购买备注和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68380007/

相关文章:

php - Doctrine 添加了不必要的自连接

wordpress - 如何测试群发电子邮件脚本

wordpress - 更改 Wordpress 产品页面中侧边栏和内容的宽度

Wordpress WooCommerce 预订不同的价格

php/mysql - date_format 和时间部分

php - 在 PHP 的关联数组中是否有类似 keypath 的东西?

wordpress - WooCommerce 在结帐前检查并重定向到登录

php - Wordpress 列数在媒体查询中不起作用

php - 更改 my-account/lost-password/page 上的 Woocommerce 丢失密码文本,无需模板覆盖

php - LEFT JOIN,如果存在第二个表的结果,则添加到 PHP 中的数组