ith zero discount_amount. $zero_discount_entries = $wpdb->get_results( $wpdb->prepare( // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared "SELECT order_id, coupon_id FROM $table_name WHERE discount_amount = %f", 0.0 ), ARRAY_A ); if ( empty( $zero_discount_entries ) ) { return array( 'success' => true, 'message' => __( 'No entries with zero discount amount found. Coupons lookup table is up to date.', 'woocommerce' ), ); } $processed_count = 0; $error_count = 0; foreach ( $zero_discount_entries as $entry ) { try { $result = CouponsDataStore::sync_order_coupons( $entry['order_id'] ); if ( false !== $result ) { ++$processed_count; } else { ++$error_count; } } catch ( Exception $e ) { ++$error_count; $logger = wc_get_logger(); $logger->error( sprintf( 'Error fixing coupon lookup entry for order %d: %s', $entry['order_id'], $e->getMessage() ), array( 'source' => 'coupons-lookup-fix', 'order_id' => $entry['order_id'], 'error' => $e, ) ); } } // Clear any related caches. wp_cache_flush_group( 'coupons' ); WC_Cache_Helper::get_transient_version( 'woocommerce_reports', true ); $message = sprintf( /* translators: %1$d: number of entries processed, %2$d: number of errors */ __( 'Coupons lookup table entries with zero discount amount repaired successfully. Processed %1$d entries with %2$d errors.', 'woocommerce' ), $processed_count, $error_count ); return array( 'success' => true, 'message' => $message, ); }