目录
本节介绍了一个在Line的迷你应用LIFF中显示woocommerce订单历史列表的实际例子,这个功能在第一章中简单介绍过。
1 用一个Hook来检索订单历史
你可以通过执行钩子 “woocommerce_account_orders_endpoint “来检索整个订单历史。
protected function do_action()
{
add_filter('woocommerce_my_account_my_orders_query', [$this, 'orders_query']);
ob_start();
do_action('woocommerce_account_orders_endpoint');
$this->main_contents .= '<h3>注文履歴</h3>';
$this->main_contents .= ob_get_clean();
$this->main_contents .=
sprintf(
'<h5>直近の注文履歴から最大 %s 件を表示します。</h5>',
self::ORDER_NUM_LIMIT
);
remove_filter('woocommerce_my_account_my_orders_query', [$this, 'orders_query']);
return true;
}
2 定制订单历史检索标准
要在Line的迷你应用程序中显示特定用户的历史,因为其显示区域有限,所以不可避免地要指定附加条件。
因此,过滤钩 “woocommerce_my_account_my_orders_query “可以用来覆盖搜索条件。
public function orders_query($arg)
{
$arg['customer'] = $this->user->ID; // 顧客を指定
$arg['post_status'] = array('wc-processing', 'wc-completed'); // 注文ステータスを指定
$arg['limit'] = self::ORDER_NUM_LIMIT; // 最大取得件数を指定
return $arg;
}
3 尽量缩小订单历史操作的范围
钩子 “woocommerce_account_orders_endpoint “只是一个在端点 “myaccount “网页上使用的动作;在正常的页面上有很多内容可以显示。比如说。在 “我的账户 “的情况下,有几个按钮同时出现在 “操作 “栏中,如 “显示、发票、送货单、支付方式”。由于小程序的面积有限,只能使用 “视图(.view)”。
.woocommerce-button:not(.view){
/*表示ボタン以外の操作は非表示*/
display: none;
}
4 用户友好的自动登录。
显示Line内的订单历史列表。如果你想看到你在Line的历史细节,你必须通过登录网站进行干预。如果你已经获得了生产线的idToken,并确定了用户,你可以让他们在查看生产线的订单细节的同时自动登录。
用preg_match_all提取指定为端点’myaccount’的URL,并将其批量转换为自动登录URL。
protected function set_mypage_auto_linelogin()
{
$pattarn = str_replace(['/', '.'], ['/', '.'], wc_get_page_permalink('myaccount')); // endpoint「myaccount」のURLを正規表現に
$pattarn = '/href="' . $pattarn . '(.*?)"/i';
if (preg_match_all($pattarn, $this->main_contents, $matched_url)) {
$replace_from = array();
$replace_to = array();
foreach ($matched_url[0] as $index => $url) {
$replace_from[] = $matched_url[1][$index];
$replace_to[] = $this->line_login->get_auto_linelogin_url($matched_url[1][$index]);
}
$this->main_contents = str_replace($replace_from, $replace_to, $this->main_contents);
}
}
5 结论。
如果网上商店的订单能在Line上一键显示,服务就会得到改善,对商店的信任度也会提高。
以前,用户信息是以Bot模式(Messaging API)的步骤格式获得的,但从2023年6月开始,Pot模式(Messaging API)的免费限制将从1000条减少到200条。转移到一个小型应用(LIFF)可能是一个选择。
而如果你正在寻找进一步的源代码,或者对LIFF的发展感兴趣,想就LIFE交换意见,请登录后留言。