Как удалить купон используя API и код купона в WooCommerce - PullRequest
1 голос
/ 24 января 2020

В WooCommerce я создал такой купон, как этот.

$coupon_data = [
    'code' => $code,
    'amount' => '15',
];

$wooCommerceMRLiveV2 = WooCommerceConnection::wooCommerceMRLiveV2();
$retval2 = $wooCommerceMRLiveV2->post('coupons', $coupon_data);

И когда код купона используется, мне нужно удалить его вручную. Но согласно API документации я могу удалять только купоны, используя id. Но в тот момент, когда используется код купона, я не знаю идентификатор. Итак, есть ли способ удалить купон, используя код купона? Или я могу получить идентификатор из кода ?

Ответы [ 3 ]

1 голос
/ 24 января 2020

Это мой рабочий код удаления купона.

$order = wc_get_order($order_id);
$get_previous_coupon = $order->get_used_coupons();
if (count($get_previous_coupon) > 0 && is_array($get_previous_coupon)) {
    foreach( $order->get_used_coupons() as $applied_coupon_code ){
        $applied_coupon = $applied_coupon_code;
    }
    $order->remove_coupon( $applied_coupon );
    $code = 1;
    $message = 'Coupon successfully removed';
}else{
    $code = 0;
    $message = 'error'; 
}

Спасибо

1 голос
/ 25 января 2020

Я мог бы удалить купон, как это. Я нашел это здесь .

$coupon_json = $wooCommerceV2->get('coupons', ['code'=>$coupon_code]);
$coupon_arr = json_decode($coupon_json);
$id = $coupon_arr[0]->id;
$result = $wooCommerceV2->delete('coupons/'.$id);
Log::info($result);
0 голосов
/ 24 января 2020
$coupon_code = '10perdiscount';

$cpn = new WC_Coupon($coupon_code);

echo $cpn->get_id();

Попробуйте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...