• 地域贡献
  • 咨询
    • 投稿人申请
  • 隐私政策
    • Cookie 政策
2025/05/27 星期二
  • 登录
  • 注册
beKOUE
  • 日本語
  • English
  • Español
  • 爱街坊
  • 神户
  • 明石
  • 数码技术原创
没有结果
查看所有结果
beKOUE
  • 爱街坊
  • 神户
  • 明石
  • 数码技术原创
没有结果
查看所有结果
beKOUE
没有结果
查看所有结果
オンラインショップ|オーダーメイド

主页 » [2023]Woocommerce Order Received 电子收据已发送至Line

[2023]Woocommerce Order Received 电子收据已发送至Line

管理者 由 管理者
2023年2月15日
在 Wordpress ZH
0 0
A A
0
0
分享
185
浏览
分享分享スキャン

目录

  • 1. 介绍的背景
  • 2. 使用LINE通知信息的条件
  • 3. 触发线路通知的条件
  • 4. 将Flex Message JSON发送到Messaging API。
  • 5. 结论。

1 介绍的背景

提高客户的便利性和客户满意度

重要的通知,如Woocommerce “新的购买”,”流程完成 “和 “取消”,可以发送到Line。

这就避免了一些问题,如通知没有被发送到电子邮件地址,或被埋在邮箱里而错过,从而提高了客户满意度。

提高服务认可度和忠诚度

这项服务有望通过向官方LINE账户添加好友和发送高度重要的信息,提高对官方LINE账户的认可度和忠诚度。

由于匹配是基于电话号码,并且可以在添加朋友之前传递给用户,因此也可以用来创造一个添加朋友的机会。

2 使用LINE通知信息的条件

建立一个官方的Line账户(@line)。

Line的新业务支持服务–LINE官方账号,可以让您直接向通过LINE添加您为好友的用户发送信息。这是一项慷慨的服务,允许你与用户沟通而不获取他们的个人信息。

オンラインショップ|ダンス|スポーツ|専門店

关于如何设置这项服务的更多信息,请参考Line官方网站。

开始使用Messaging API

开设“Line官方账户 “后,在设置好聊天模式后,您可以像往常一样通过Line与用户聊天,但为了实现从Woocommerce收到订单后的自动通知,您必须设置Messaging API。

开始使用Messaging API和获得通道访问令牌并不是本次讲解的重点,更详细的信息请参考Line的官方网站。

3 触发线路通知的条件

WordPress的必要插件。

Woocommerce 在全球电子商务网站中占有20%的份额,现在已经成为电子商务市场中不可缺少的一部分。

您将需要LINE Messaging API SDK ,它结合了Messaging API,但这里推荐使用Line Connect。

使用钩子动作(woocommerce_email_sent)来执行每次订单状态变化时的电子邮件通知,从Woocommerce的新订单到完成的订单,甚至取消的订单,并调用Line Messaging API。

在客户端(用户)的一个行动中发出电子收据通知

从管理员方面通知行动中的电子收据

实施挂钩行动

在这里使用Line Connect,它具有向Line发送所需的Messaging API SKD。这个插件有很好的功能,如发帖时向Line发出通知,以及在机器人模式下与Line整合。我们鼓励你使用它。

add_action('woocommerce_email_sent', 'kure_customize_woocommerce_email_sent', 10, 3);
function kure_customize_woocommerce_email_sent($return, $id, $mailer)
{
    // Line Connect & Easy Line login(KURE製) が必須
    if (!class_exists('lineconnectMessage') || !function_exists('Esay_line_login')) { 
        return;
    }
    $line_messager_class_path = KURE_DIR_CLASS . "kure_customize_line_receipt.php";
    if (!file_exists($line_messager_class_path)) {
        return;
    }
    if (!did_action('woocommerce_email_order_details')) {
        return;
    }
    try {
        if (!isset($mailer->object) || !($mailer->object instanceof WC_Order)) {
            return;
        }
        $order = $mailer->object;
        // 注文のユーザーからLine Idを取得
        if (!Esay_line_login()->has_line($order->get_user(), $line_id)) {
            return;
        }
        static $is_sent;
        if (isset($is_sent[$line_id]) && $is_sent[$line_id] == $order->get_order_number()) {
            // 連続送信しない
            return;
        }
        // メールの送信先が違い、同じオーダーで2回送信されることがある為、重複Line通知を回避
        $is_sent[$line_id] =  $order->get_order_number();
        /** @var kure_customize_line_receipt */
        $line_messager = include $line_messager_class_path;
        foreach (lineconnect::get_all_channels() as $channel) {
            // send_order_roleはKUREがカスタマイズした設定項目
            if (empty($channel['send_order_role']) || !in_array($channel['send_order_role'], $line_role_names)) {
                // 指定された通知対象か
                continue;
            }
            $error = lineconnectMessage::sendPushMessage($channel, $line_id, $line_messager);
            // 一方通行の為、ブロック中のユーザかどうか分からないです。その時、Webhookの配信完了イベントにて送信結果を拾う必要があるが、チャットモードの場合、Webhookが利用できない
            // https://developers.line.biz/ja/docs/partner-docs/line-notification-messages/message-sending-complete-webhook-event/#overview-delivery-webhook-event
            if ($error["success"]) {
                // 一度成功したら、複数回の通知を実施しないよう、中断
                break;
            }
        }
    } catch (Throwable $th) {
        //すべての例外を無視
    }
}

4 将Flex Message JSON发送到Messaging API。

可以发送到Messaging API那边的模板消息被称为Flex消息。你可以自由设计,只要使用指定的JSON布局。

有各种工具可以提供Flex Message设计,但由于我们没有收费,我们依靠Line公司的手册来创建我们自己的设计。

MeIN|明石|二见|儿童|劲舞|自2016 年

首先,从Line Developers Flex Message Simulator中找到一个类似收据的模板,然后安排JSON。

下面是整理后的JSON。

close

安排JSON后的BODY

"type": "bubble",
"body": {
    "type": "box",
    "layout": "vertical",
    "contents": [
        {
            "type": "box",
            "layout": "horizontal",
            "contents": [
                {
                    "type": "image",
                    "url": "{site_logo}",
                    "align": "start"
                },
                {
                    "type": "text",
                    "text": "{order_status}",
                    "weight": "bold",
                    "color": "#1DB446",
                    "size": "sm",
                    "align": "end",
                    "gravity": "center"
                }
            ]
        },
        {
            "type": "text",
            "text": "{order_title}",
            "weight": "bold",
            "size": "xxl",
            "margin": "md",
            "decoration": "underline",
            "action": {
                "type": "uri",
                "label": "action",
                "uri": "{order_link}"
            }
        },
        {
            "type": "text",
            "text": "{order_address}",
            "size": "xs",
            "color": "#aaaaaa",
            "wrap": true
        },
        {
            "type": "separator",
            "margin": "xxl"
        },
        {
            "type": "box",
            "layout": "vertical",
            "margin": "xxl",
            "spacing": "sm",
            "contents": [
                {order_items},
                {
                    "type": "separator",
                    "margin": "xxl"
                },
                {order_total}
            ]
        },
        {
            "type": "separator",
            "margin": "xxl"
        },
        {
            "type": "box",
            "layout": "horizontal",
            "margin": "md",
            "contents": [
                {
                    "type": "text",
                    "text": "{order_note}",
                    "size": "xs",
                    "color": "#aaaaaa",
                    "wrap": true
                }
            ]
        }
    ]
},
"styles": {
    "footer": {
        "separator": true
    }
}

*”{order_NNN}”:表示str_replace的关键词。

详细项目(含URL) JSON

"type": "box",
"layout": "horizontal",
"contents": [
    {
        "type": "text",
        "text": "{item_title}",
        "size": "sm",
        "color": "#555555",
        "flex": 0,
        "action": {
            "type": "uri",
            "label": "action",
            "uri": "{item_link}"
        }
    },
    {
        "type": "text",
        "text": "{item_value}",
        "size": "sm",
        "color": "#111111",
        "align": "end"
    }
]

详细项目 JSON

"type": "box",
"layout": "horizontal",
"contents": [
    {
        "type": "text",
        "text": "{item_title}",
        "size": "sm",
        "color": "#555555",
        "flex": 0
    },
    {
        "type": "text",
        "text": "{item_value}",
        "size": "sm",
        "color": "#111111",
        "align": "end"
    }
]

安排点

  • 显示网站图标
  • 显示订单状态
  • 订单号显示在页眉,URL被嵌入以重定向到相关的订单历史。
  • 订单细节(产品清单)也会自动生成,并嵌入URL以重定向到相关产品。
  • 显示总价、运费和支付方式,以及woocommerce订单历史的页脚字段。
  • 同时显示管理员添加的备注(订单备注)。

下面是一些源代码。

输出订单的产品细节

生成一个字符串,并在BODYJSON中用”{order_items}”替换它。

// 注文商品を出力
foreach ($this->order->get_items() as $item_id => $item) {
    if ($item instanceof WC_Order_Item_Product) {
        $product = $item->get_product();
        $json_items[] = $this->create_items_with_link(
            $product->get_name(), // {item_title} 商品名
            $product->get_permalink(), // {item_link} 商品へのリダイレクトする為、リンクを埋め込む
            $this->order->get_formatted_line_subtotal($item) // {item_value} 値段
        );
    } else {
        // 基本的にProduct以外のItemがないですが、Product Addons & Optionsなどプラグインを導入している場合、該当分岐に入る
        $json_items[] = $this->create_items_no_link(
            $item->get_name(),
            $this->order->get_formatted_line_subtotal($item)
        );
    }
}

总金额的输出

生成一个字符串,并在BODYJSON中替换为”{order_total}”。

$faqurl = $this->get_order_payment_faqurl(); // 決済方法の案内(よくある質問)ページ
// 金額、送料など出力
foreach ($this->order->get_order_item_totals() as $item_id => $item) {
    if ($item_id === 'payment_method' && !empty($faqurl)) { 
        $json_total[] = $this->create_items_with_link(
            $item['label'],
            $faqurl, // 決済方法へのリダイレクトを埋め込む
            $item['value'],
        );
    } else {
        $json_total[] = $this->create_items_no_link(
            $item['label'],
            $item['value']
        );
    }
}

笔记的输出(订单笔记)

备注(订单备注)可以在woocommerce订单编辑的管理界面上添加。有两种类型的说明:管理员的说明和通知客户的说明。对客户的通知也会输出到电子收据上。

由于字段是手动输入的,因此可以自由输入符号。如果包含双引号或特殊符号,JSON字符串将产生一个错误。因此,它们被提前删除以防止JSON错误。

private function get_order_notes()
{
    $notes = array();
    foreach ($this->order->get_customer_order_notes() as $ext_note) {
        if ($ext_note instanceof WP_Comment) {
            // 日付 + 内容、wptexturizeにて特殊記号を有効な文字へ変換
            $notes[] = date_i18n(get_option('date_format'), strtotime($ext_note->comment_date)) . ' ' . wptexturize($ext_note->comment_content);
        }
    }
    $notes = array_filter(array_map('trim', $notes));
    $str_notes = $this->del_specialchars(implode('n', $notes));
    if (empty($str_notes)) {
        // 空欄だと、Line側でエラーが発生する為、ノートがない場合も内容を設定
        $str_notes = '注文メモなし';
    }
    return $str_notes;
}
private function del_specialchars($text)
{
    $text = html_entity_decode(wp_strip_all_tags($text));
    // json の 変換でエラーにならないよう、ダブルコーテーションをなくす
    $text = str_replace(
        ['"', "'"],
        ' ',
        $text
    );
    return $text;
}

5 结论。

仅在日本,Line就拥有9300万用户。众多公司和政府组织也利用Line向其用户传播信息。这个世界太伟大了,不能忽视Line。当然,对作者来说也是如此。

作者多年来致力于克拉萨巴的发展。由于Corona,他有更多时间呆在家里,从2022年开始对Line + WordPress感兴趣,并继续接受挑战。我仍然是个新手,但我很乐意为尽可能多的人/开发者提供帮助,哪怕只是一个小的方面。我将在未来继续挑战自己,请大家期待。

如果你有任何问题或建议,请登录并留下评论。

标签: LinePHPWoocommerce 7大侠
分享分享扫描
足球 | 体育 | 六甲人工·岛 | 儿童 | 幼儿体操
上一篇文章

神户:神户儿童农业体验 “Le*Lu*Lu计划” – 成长。

下一篇文章

[2023]LIFF大规模继承 因此,前面的重复使用

管理者

管理者

作者1985年出生。2008年从中国大学毕业后,在中国的日企工作后,与2011年调到东京的总公司。在东京工作的六年里,日本国内各大IT公司的软件承保,提升自己的日语和各总编程语言。 2016年,在30岁之前,环游了世界一圈。 完成环球旅行后,怀着从头开始的觉悟,来到了关西地区。发挥自己的IT技术开设了bekoue.com,将关西和神户的优点传播到全世界。

相关 文章

Wordpress ZH

线Woocommerce流通系统在线

2023年4月13日
0
141

关于优惠券门票 世界上有很多情况可以使用优惠券系统,比如公共浴室的门票、汽车票或活动门票。 这次,在体育学校Gooall(以下简称Gooall)的合作下,我们要介绍的是已经投入...

阅读更多
【2023年版】LIFF 量産 継承 よって フロント再利用

[2023]Woocommerce的订单历史在Line内。

2023年2月15日
329
【2023年版】LIFF 量産 継承 よって フロント再利用

[2023]LIFF大规模继承 因此,前面的重复使用

2023年2月15日
198
下一篇文章
【2023年版】LIFF 量産 継承 よって フロント再利用

[2023]LIFF大规模继承 因此,前面的重复使用

【2023年版】LIFF 量産 継承 よって フロント再利用

[2023]Woocommerce的订单历史在Line内。

请登录之后, 再留言

最人气

  • 週末のお楽しみが今年も始まる!「神戸港ウィークエンド花火」2月

    今年的周末欢乐又开始了!二月神户港周末焰火晚会

    0 分享
    分享 0 分享 0
  • 共有 32 个华丽的团尻在东和田区的街道上游行,东和田区的每个地区都有 “2025”。

    0 分享
    分享 0 分享 0
  • 该展览十年来首次在兵库县立美术馆举办!保罗-克利展:创造的星座

    0 分享
    分享 0 分享 0
  • 昭和时代的怀旧人物!神户现代美术馆的三丽鸥展

    0 分享
    分享 0 分享 0
  • 探访神户市内唯一一家保留传统的酱油酿造厂:神户市西区羽泽谷町的池元。

    0 分享
    分享 0 分享 0

最新

明石市政府本厅二楼大厅的明石动物中心猫狗展板。

2025年5月22日
0

板垣野寻女高音音乐会 “六甲岛天后” 202505

2025年5月22日
0

活动取消信息] 5 月 21 日 R.I.C Party -CENTRAL- 六子岛城市派对

2025年5月22日
0

发现优势和吸引力!自我品牌塑造课程 – 六甲岛

2025年5月22日
0
「自然×街」のコントラストが魅力!六甲山上駅からすぐの『天覧台

自然与城市 “之间的对比令人着迷!从六甲三条站步行即可到达天兰台。

2025年5月19日
1
オンラインショップ|オーダーメイド
beKOUE

  • 爱街坊
  • 神户
  • 明石
  • 数码技术
  • MeINPartner
  • GooallPartner
  • shAopEC Site
  • GlobalFactory
  • Booking
  • 地域贡献
  • 咨询
  • 隐私政策

Copyright 2025 by be Co., Ltd.

没有结果
查看所有结果
  • 日本語
  • English
  • Español
  • 爱街坊
  • 神户
  • 明石
  • 数码技术
  • 登录
  • 注册
  • 地域贡献
  • 咨询
  • 隐私政策

Copyright 2025 by be Co., Ltd.

欢迎回来!

用Facebook登录
用Google登录
用Line登录
或

登录到您的账户如下

忘记密码? 注册

创建新账户!

用Facebook注册
在Google上注册
在Line上注册
或

填写以下项目进行注册

*通过在本站注册,您可以使用使用条款和隐私政策您被视为同意。
所有项目需要填写。 登录

找回你的密码

请输入你的用户名或电子邮件地址来重设你的密码.

登录
我们的网站使用 cookie。 继续使用即表示您同意我们使用 cookie。 请参阅 Cookie 政策。
error: Alert: コンテンツは保護されています !!!