手动设置 Coupon used_by Customer ID

如果要通过 REST API 手动添加优惠券代码或从管理员创建新订单端点,我正在寻找有关在 Woocommerce 上设置优惠券 used_by particular customer user_id 的文档。但我找不到正确的方法。希望有人能指点我。下面是我到目前为止开发的代码,但它返回了 NULL。

$WC_Coupon = new WC_Coupon($request['code']);
$WC_Coupon->set_used_by( $request['customer_id'] );


倚天杖
浏览 104回答 2
2回答

饮歌长啸

你确定你$WC_Coupon的实例化正确吗?无论优惠券是如何添加到系统中的,一旦添加到系统中,它就应该像其他任何优惠券一样起作用。建议您获取 $WC_Coupon 的 var_dump 并查看它是否输出正确的值,否则,您可能没有为构造函数提供正确的代码参数。

小怪兽爱吃肉

如果我正确地解释了代码,您想要查找两种货币的两种产品。这可以在您定义产品和货币后使用嵌套的 foreach 循环来完成。$cacheDirectory = $_SERVER['DOCUMENT_ROOT'] . '/cache/';$url = 'https://remotedomain.com/?get=price';const MAX_CACHE_TIME = 1600;// Optional$output = [];$productList = [    [        'id'   => 10,        'name' => 'SM',    ],    [        'id'   => 20,        'name' => 'LG',    ]];$currencies = [    'US' => 1,    'EU' => 2,];foreach ($productList as $product) {    foreach ($currencies as $currencyName => $currencyId) {        $cacheFile = $cacheDirectory . $product['name'] . '_' . $currencyName . '.cache';        if (!file_exists($cacheFile) || filemtime($cacheFile) > MAX_CACHE_TIME) {            // No cache or too old            $data = file_get_contents($url . '&product=' . $product['id'] . '&currency=' . $currencyId);            $relevantData = substr($data, 17, 2);            file_put_contents($cacheFile, $relevantData);            // Optional, put the data in an array            $output[$product['id']][$currencyId] = $relevantData;        } else {            $output[$product['id']][$currencyId] = file_get_contents($cacheFile);        }    }}// Read output with $output[10]['US'] for example分享编辑跟随
打开App,查看更多内容
随时随地看视频慕课网APP