HEX
Server: Apache
System: Linux efa57bbe-abb1-400d-2985-3b056fbc2701.secureserver.net 6.1.147-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 24 12:33:32 EDT 2025 x86_64
User: root (0)
PHP: 8.0.30.4
Disabled: NONE
Upload Files
File: //var/www/wp-content/mu-plugins/vendor/godaddy/mwc-core/src/WooCommerce/Adapters/CouponAdapter.php
<?php

namespace GoDaddy\WordPress\MWC\Core\WooCommerce\Adapters;

use Exception;
use GoDaddy\WordPress\MWC\Common\DataSources\WooCommerce\Adapters\CouponAdapter as CommonCouponAdapter;
use GoDaddy\WordPress\MWC\Common\Helpers\ArrayHelper;
use GoDaddy\WordPress\MWC\Common\Models\Coupon as CommonCoupon;
use GoDaddy\WordPress\MWC\Core\WooCommerce\Models\Coupon;

/**
 * Coupon adapter.
 *
 * Converts between a native core coupon object and a WooCommerce coupon object.
 */
class CouponAdapter extends CommonCouponAdapter
{
    /** @var string overrides the common coupon class with the core coupon class */
    protected $couponClass = Coupon::class;

    /**
     * Converts a WooCommerce coupon object into a native core coupon object.
     *
     * @return CommonCoupon
     * @throws Exception
     */
    public function convertFromSource() : CommonCoupon
    {
        /** @var Coupon $coupon */
        $coupon = parent::convertFromSource();

        $coupon->setUniqueUrl($this->source->get_meta('_wc_url_coupons_unique_url'));
        $coupon->setRedirectPageId((int) $this->source->get_meta('_wc_url_coupons_redirect_page'));
        $coupon->setRedirectPageType($this->source->get_meta('_wc_url_coupons_existing_page_type'));
        $coupon->setProductsToAddToCart(ArrayHelper::wrap($this->source->get_meta('_wc_url_coupons_product_ids')));
        $coupon->setDeferApply('yes' === $this->source->get_meta('_wc_url_coupons_defer_apply'));

        return $coupon;
    }
}