【问题标题】:Get product name using expression in woocommerce在 woocommerce 中使用表达式获取产品名称
【发布时间】:2020-03-11 06:34:52
【问题描述】:

我可以使用表达式 {order_id} 获取订单 ID,如下图所示。

是否有任何表达式可以让我像 Order Id 一样获得产品名称。这是一个支付网关插件,所以编辑插件文件将是我想做的最后一件事。谢谢。

【问题讨论】:

    标签: wordpress woocommerce telr


    【解决方案1】:

    一些知识分子对我的问题投了反对票,却没有看到他们的知识基础。但是对于像我这样的穷人来说,这是我发现的:

    文件:plugins/telr/class-wc-gateway-telr-checkout-handler.php

    方法:私有函数 generate_request($order)

    找到:

    $cart_desc = trim(wc_gateway_telr()->settings->__get('cart_desc'));
    if (empty($cart_desc)) {
        $cart_desc ='Order {order_id}';
    }
    $cart_desc  = preg_replace('/{order_id}/i', $order_id, $cart_desc);
    add_post_meta($order_id, '_telr_cartdesc', $cart_desc);
    

    替换为:

    $cart_desc = trim(wc_gateway_telr()->settings->__get('cart_desc'));
    if (empty($cart_desc)) {
        $cart_desc ='Order {order_id}';
    }
    
    $order_items = $order->get_items();
    $productNames = array();
    foreach ($order_items as $product_data) {
        $productInfo = $product_data->get_data();
        $productNames[] = $productInfo['name'];
    }
    $cartProducts = implode(", ", $productNames);
    $cart_desc  = preg_replace('/{order_id}/i', $order_id, $cart_desc);
    $cart_desc  = preg_replace('/{product_names}/i', $cartProducts, $cart_desc);
    $cart_desc = substr($cart_desc, 0, 63);
    add_post_meta($order_id, '_telr_cartdesc', $cart_desc);
    

    在此之后,{product_names} 将替换为 ',' 分隔的产品名称和最终描述字符串将被修剪到 63 个字符(因为这是描述可以具有的长度)

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 2019-10-10
      • 2015-02-25
      • 2019-04-04
      • 2020-11-02
      • 1970-01-01
      • 2018-12-10
      • 2014-07-04
      相关资源
      最近更新 更多