{"id":233563,"date":"2023-02-17T10:10:00","date_gmt":"2023-02-17T07:10:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233563"},"modified":"2022-11-11T00:21:45","modified_gmt":"2022-11-10T21:21:45","slug":"hur-man-programiskt-laegger-till-en-anpassad-rabatt-till-woocommerce-checkout","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/hur-man-programiskt-laegger-till-en-anpassad-rabatt-till-woocommerce-checkout\/","title":{"rendered":"Hur man programiskt l\u00e4gger till en anpassad rabatt till WooCommerce Checkout"},"content":{"rendered":"\n<p>I det h\u00e4r inl\u00e4gget kommer vi att titta p\u00e5 hur vi l\u00e4gger till rabatter programm\u00e4ssigt och automatiskt. F\u00f6r att g\u00f6ra detta anv\u00e4nder vi WooCommerces kupongfunktion men vi g\u00f6r det automatiskt och vi d\u00f6ljer det faktum att det \u00e4r en kupong till kunderna. Jag har f\u00f6rs\u00f6kt att h\u00e5lla koden s\u00e5 generell som m\u00f6jligt d\u00e5 villkoren f\u00f6r att till\u00e4mpa rabatter kan variera mycket f\u00f6r alla som l\u00e4ser detta.<\/p>\n<h2>Varf\u00f6r kuponger \u00e4r s\u00e4ttet att g\u00f6ra det<\/h2>\n<p>I \u00e4ldre versioner av WooCommerce hade vi n\u00e5gra (&quot;hackiska&quot;) alternativ f\u00f6r att l\u00e4gga till rabatter med kod, till exempel att ge ett negativt nummer till <code>add_fee()<\/code>eller arbeta med <code>get_discounted_price()<\/code>. Tyv\u00e4rr fungerar dessa metoder inte l\u00e4ngre eller anses vara \u00e4ldre och kommer att tas bort i senare versioner. Det strukturellt bra s\u00e4ttet att l\u00e4gga till rabatter \u00e4r att anv\u00e4nda den inbyggda kupongfunktionen i WooCommerce.<\/p>\n<p>Emellertid kan en kupong i allm\u00e4nhet inte appliceras automatiskt p\u00e5 en kundvagn. Det kr\u00e4ver att kunden manuellt skriver in en kupongkod som hon eller han m\u00e5ste ha f\u00e5tt. I vissa webbutiker vill man bara att en rabatt till\u00e4mpas automatiskt n\u00e4r ett visst villkor \u00e4r uppfyllt utan att kunden beh\u00f6ver g\u00f6ra n\u00e5got. Det \u00e4r vad vi fixar med kod.<\/p>\n<h2>Anpassade rabatter med kuponger<\/h2>\n<p>Du m\u00e5ste skapa en kupong med en kod och st\u00e4lla in den med de parametrar du \u00f6nskar. Du kommer att kunna till\u00e4mpa den, ta bort den och \u00e4ndra olika utdata varhelst kupongen \u00e4r synlig f\u00f6r kunden. Eventuellt, om du faktiskt inte vill ha kuponger tillg\u00e4ngliga f\u00f6r kunder i din webbshop, kommer vi att titta p\u00e5 n\u00e5gra enkla knep f\u00f6r att d\u00f6lja alternativen f\u00f6r att manuellt ange kupongkoder.<\/p>\n<p>I kodexemplet nedan grupperar jag all relaterad kod i en PHP-klass. Detta hj\u00e4lper till f\u00f6r en renare kod men \u00e4r s\u00e4rskilt anv\u00e4ndbart eftersom vi vill h\u00e4nvisa till kupongkoden flera g\u00e5nger. Att definiera den som en klassvariabel \u00e4r b\u00e4ttre \u00e4n att upprepa den i flera funktioner.<\/p>\n<h3>Skapa din rabatt som en kupong<\/h3>\n<p>Det f\u00f6rsta steget \u00e4r att skapa kupongen som kommer att vara &quot;platsh\u00e5llaren&quot; f\u00f6r din rabatt. Det enklaste \u00e4r helt enkelt att skapa en i WooCommerce admin (WooCommerce &gt; Kuponger &gt; L\u00e4gg till kupong).<\/p>\n<p>Om du vill skapa kupongen programm\u00e4ssigt \u00e4r en kupong faktiskt ett inl\u00e4gg du kan skapa med <code>wp_insert_post()<\/code>\u2013 men du m\u00e5ste vara noga med att skapa ditt kuponginl\u00e4gg bara en g\u00e5ng. WooCommerce har en kort <a href=\"https:\/\/docs.woocommerce.com\/document\/create-a-coupon-programatically\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">guide i hur man programm\u00e4ssigt skapar en kupong<\/a>.<\/p>\n<p>Ange en unik slug som din kupongkod och st\u00e4ll in som ett minimum rabattbeloppet (antingen en procentsats eller fast avgift). N\u00e4r det g\u00e4ller kodexemplet nedan har jag skapat en kupongkod &#8217; <code>example<\/code>&#8217; (jag rekommenderar dock att du anv\u00e4nder ett mer kreativt och passande namn f\u00f6r ditt).<\/p>\n<h3>Skapar PHP-klassen som kommer att inneh\u00e5lla all v\u00e5r kod<\/h3>\n<p>L\u00e5t oss \u00e4ntligen komma till kodningen! Du kan definiera den h\u00e4r klassen direkt i ditt temas <code>functions.php<\/code>, plugin-kod eller en medf\u00f6ljande separat fil.<\/p>\n<pre><code>class AWPCustomDiscount {\n    private $coupon_code = 'example';\n\u00a0\n    public function __construct() {\n\u00a0\n    }\n}\nnew AWPCustomDiscount();<\/code><\/pre>\n<p>Namnge din klass vad du vill och ers\u00e4tt klassvariabeln <code>$coupon_code<\/code>med vad du \u00e4n kallade din kupong. Gl\u00f6m inte att initialisera klassen efter i slutet (<code>new AWPCustomDiscount()<\/code>).<\/p>\n<p>Om du har programmerat objektorienterat tidigare b\u00f6r detta vara bekant f\u00f6r dig. Om inte, oroa dig inte, detta b\u00f6r vara enkelt att f\u00f6lja. Vi l\u00e4gger till n\u00e5gra funktioner h\u00e4r och h\u00e4nvisar till kupongkoden med <code>$this-&gt;coupon_code<\/code>. L\u00e5t oss b\u00f6rja med koden som \u00e4r ansvarig f\u00f6r att faktiskt l\u00e4gga till kupongen n\u00e4r villkoren \u00e4r uppfyllda.<\/p>\n<h3>Applicera kupong programm\u00e4ssigt<\/h3>\n<p>Av erfarenhet har jag l\u00e4rt mig att anslutning av koden f\u00f6r att applicera och ta bort kuponger fungerar b\u00e4st och mest konsekvent med f\u00f6ljande tv\u00e5 krokar; en f\u00f6r vagnen (<code>woocommerce_before_cart<\/code>) och en f\u00f6r kassan (<code>woocommerce_before_checkout_form<\/code>).<\/p>\n<p>Inuti funktionen beh\u00f6ver vi bara kolla efter de villkor vi vill ha. WooCommerce erbjuder funktioner f\u00f6r att f\u00e5 tag p\u00e5 varukorgsobjektet <code>with WC()-&gt;cart<\/code>som vi kan anv\u00e4nda f\u00f6r att f\u00e5 all information vi beh\u00f6ver om varukorgen s\u00e5som dess artiklar och totaler. Som ett exempel kommer koden nedan att till\u00e4mpa en rabatt om varukorgens totala summa (exklusive eventuella rabatter) \u00e4r \u00f6ver ett visst belopp.<\/p>\n<p>Vi b\u00f6r ocks\u00e5 se till att om villkoren inte \u00e4r uppfyllda b\u00f6r vi ta bort rabatten om den tidigare lagts till. F\u00f6rest\u00e4ll dig i v\u00e5rt exempel att kunden \u00f6verskred maxbeloppet, men sedan gick till kundvagnen, tog bort n\u00e5gra varor och d\u00e4rmed kom tillbaka under det kr\u00e4vda beloppet. Eftersom kuponger inte till\u00e4mpas automatiskt m\u00e5ste alla applicerade kuponger ocks\u00e5 tas bort programm\u00e4ssigt.<\/p>\n<h4>Anv\u00e4nder sig av<code>apply_coupon<\/code><\/h4>\n<p>Kuponger l\u00e4ggs till i kundvagnsobjektet med <code>apply_coupon()<\/code>kupongkoden som parameter, och de tas bort fr\u00e5n kundvagnsobjektet <code>remove_coupon()<\/code>med kupongkoden som parameter. Enkelt nog. Vi kan ocks\u00e5 anv\u00e4nda funktionen s\u00e5 pass passande <code>get_applied_coupons()<\/code>i kundvagnsobjektet f\u00f6r att kontrollera om v\u00e5r kupong redan har anv\u00e4nts.<\/p>\n<pre><code>    ...\n    public function __construct() {\n        add_action('woocommerce_before_cart', [$this, 'addDiscount']);\n        add_action('woocommerce_before_checkout_form', [$this, 'addDiscount']);\n    }\n\u00a0\n    function addDiscount() {\n        if (is_admin() &amp;&amp; !defined('DOING_AJAX')) {\n            return;\n        }\n        if (WC()-&gt;cart-&gt;get_subtotal() &gt; 500) {\n            \/\/ add discount, if not added already\n            if (!in_array($this-&gt;coupon_code, WC()-&gt;cart-&gt;get_applied_coupons())) {\n                WC()-&gt;cart-&gt;apply_coupon($this-&gt;coupon_code);\n            }\n        } else {\n            \/\/ remove discount if it was previously added\n            WC()-&gt;cart-&gt;remove_coupon($this-&gt;coupon_code);\n        }\n    }\n    ...<\/code><\/pre>\n<p>Om du inte \u00e4r bekant med att anv\u00e4nda objektorienterad PHP i WordPress; h\u00e4r \u00e4r en snabb sammanfattning av hur ovanst\u00e5ende fungerar: <code>__construct()<\/code>Funktionen k\u00f6rs n\u00e4r klassen initieras, vilket vi g\u00f6r direkt efter klassen. Inuti <code>__construct()<\/code>l\u00e4gger du vanligtvis alla krokar som du normalt skulle g\u00f6ra, till exempel inuti <code>functions.php<\/code>. F\u00f6r att WordPress ska hitta v\u00e5ra funktioner i v\u00e5r klass m\u00e5ste vi tala om f\u00f6r kroken att referera till en funktion definierad i en array best\u00e5ende av <code>$this<\/code>(klassobjektet) och funktionsnamnet.<\/p>\n<p>Inne i funktionen <code>addDiscount()<\/code>programmerar vi in \u200b\u200bv\u00e5ra villkor. I exemplet ovan h\u00e4mtar jag vagnens totala v\u00e4rde med <code>WC()-&gt;cart-&gt;get_subtotal()<\/code>och j\u00e4mf\u00f6r den med mina f\u00f6rh\u00e5llanden \u2013 \u00f6ver 500.<\/p>\n<p>Obs: Om du beh\u00f6ver h\u00e4mta och j\u00e4mf\u00f6ra varukorgsummor, var medveten om att de flesta av totalsummorna \u00e4r inkluderade kuponger. Till exempel kommer de mer bekanta <code>WC()-&gt;cart-&gt;get_cart_contents_total()<\/code>att returnera summan f\u00f6re leverans men inkluderade rabatter; vilket inneb\u00e4r att om din rabatt har till\u00e4mpats tidigare kommer denna summa att vara fel att j\u00e4mf\u00f6ra med.<\/p>\n<p>Du kan ringa <code>apply_coupon()<\/code>utan att kontrollera om kupongen redan har till\u00e4mpats (<code>if<\/code>kontrollen p\u00e5 rad #14), eftersom funktionen <code>apply_coupon()<\/code>sj\u00e4lv ser till att inte l\u00e4gga till den igen om den anv\u00e4ndes tidigare. Men denna <code>if<\/code>-kontroll f\u00f6rhindrar att kunden f\u00e5r ett felmeddelande som s\u00e4ger &quot;Kupongen har redan till\u00e4mpats&quot; varje g\u00e5ng varukorgen uppdateras.<\/p>\n<p>S\u00e5 h\u00e4r kommer din rabatt att se ut i varukorgsummor i varukorg och kassa:<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152866-61e4fcd750a7d.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-152866-61e4fcd750a7d.png\" alt=\"Hur man programiskt l\u00e4gger till en anpassad rabatt till WooCommerce Checkout\" ><\/a><\/p>\n<h4>Dina villkor f\u00f6r rabatt<\/h4>\n<p>Villkoren f\u00f6r din kupong beror helt p\u00e5 dig och dina behov. Jag har satt upp n\u00e5gra exempel p\u00e5 villkor f\u00f6r <a href=\"https:\/\/awhitepixel.com\/blog\/guide-on-how-to-add-custom-fees-to-woocommerce-checkout\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">att l\u00e4gga till en anpassad avgift i ett tidigare inl\u00e4gg<\/a> \u2013 till exempel beroende p\u00e5 leveransplats eller vilka produkter som ligger i kundvagnen. Du kan \u00e4ven j\u00e4mf\u00f6ra dagens datum om du ville ge en speciell jul- eller halloweenrabatt, eller ge rabatt baserat p\u00e5 villkor hos den inloggade kunden.<\/p>\n<p>Om du hellre vill anv\u00e4nda kupongen beroende p\u00e5 inst\u00e4llningar du har gjort p\u00e5 sj\u00e4lva kupongen \u2013 till exempel utesluta eller inkludera vissa produkt-ID:n, kan du ocks\u00e5 g\u00f6ra det. Du kan instansiera ett objekt av kupongen fr\u00e5n kupongkoden, s\u00e5 h\u00e4r:<\/p>\n<pre><code>$coupon = new WC_Coupon($this-&gt;coupon_code);<\/code><\/pre>\n<p>Med det kupongobjektet har du tillg\u00e5ng till alla funktioner f\u00f6r att h\u00e4mta alla inst\u00e4llningar du har st\u00e4llt in p\u00e5 kupongen. Till exempel att f\u00e5 tag p\u00e5 produkt-ID:n som m\u00e5ste inkluderas f\u00f6r kupongen:<\/p>\n<pre><code>$required_products = $coupon-&gt;get_product_ids();<\/code><\/pre>\n<p>Se <a href=\"https:\/\/docs.woocommerce.com\/wc-apidocs\/class-WC_Coupon.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">dokumentationen f\u00f6r klassen WC_Coupon<\/a> f\u00f6r att se hur du kan f\u00e5 tag i det du beh\u00f6ver.<\/p>\n<h3>Fixa kupongens synliga etikett<\/h3>\n<p>Kupongen b\u00f6r nu l\u00e4ggas till och tas bort n\u00e4r din kundvagn uppfyller eller inte uppfyller dina villkor som anges i <code>addDiscount()<\/code>. Men i totaltabellen i b\u00e5de varukorgen och i kassan visas rabatten som &quot;Kupong: exempel&quot; (eller vad din kupongkod nu \u00e4r). Det \u00e4r inte bra! Lyckligtvis \u00e4r det l\u00e4tt att \u00e4ndra denna etikett med hj\u00e4lp av filtret <code>woocommerce_cart_totals_coupon_label<\/code>. Vi l\u00e4gger till filtret i v\u00e5r <code>__construct()<\/code>och definierar en funktion:<\/p>\n<pre><code>    ...\n    public function __construct() {\n        add_action('woocommerce_before_cart', [$this, 'addDiscount']);\n        add_action('woocommerce_before_checkout_form', [$this, 'addDiscount']);\n        add_filter('woocommerce_cart_totals_coupon_label', [$this, 'discountLabel'], 10, 2);\n    }\n\u00a0\n    function discountLabel($label, $coupon) {\n        if ($coupon-&gt;code == $this-&gt;coupon_code) {\n            return __('Custom discount', 'txtdomain');\n        }\n        return $label;\n    }\n    ...<\/code><\/pre>\n<p>Med filtret f\u00e5r vi tillg\u00e5ng till kupongobjektet som andra parameter. Med kupongobjektet kan vi kontrollera dess egenskap, <code>code<\/code>, oavsett om det st\u00e4mmer \u00f6verens med v\u00e5r anpassade kupongkod. I s\u00e5 fall returnerar vi vilken etikett vi vill. Justera etikettutmatningen till vad du vill. Annars returnerar vi standardkupongetiketten.<\/p>\n<h3>Ta bort anv\u00e4ndaralternativet f\u00f6r att ta bort rabatten<\/h3>\n<p>En annan sak som du kanske har lagt m\u00e4rke till i visningen av v\u00e5r rabatt i varukorg och kassa \u00e4r att den fick en l\u00e4nk &quot;[Ta bort]&quot; efter beloppet. Detta \u00e4r standardbeteende f\u00f6r kuponger i WooCommerce, men f\u00f6r v\u00e5rt fall inte \u00f6nskv\u00e4rt. B\u00e5de f\u00f6r att det kan f\u00f6rvirra kunderna och f\u00f6r att v\u00e5r kod skulle till\u00e4mpa den igen efter borttagning.<\/p>\n<p>WooCommerce tillhandah\u00e5ller filtret <code>woocommerce_cart_totals_coupon_html<\/code>f\u00f6r utmatningen av beloppet. Lyckligtvis tillhandah\u00e5ller WooCommerce HTML-utdata av endast beloppet sj\u00e4lvt som tredje parameter till detta filter. Vi kan helt enkelt returnera detta ist\u00e4llet f\u00f6r att se till att v\u00e5r rabatt presenteras korrekt med valuta och allt.<\/p>\n<pre><code>    ...\n    public function __construct() {\n        add_action('woocommerce_before_cart', [$this, 'addDiscount']);\n        add_action('woocommerce_before_checkout_form', [$this, 'addDiscount']);\n        add_filter('woocommerce_cart_totals_coupon_label', [$this, 'discountLabel'], 10, 2);\n        add_filter('woocommerce_cart_totals_coupon_html', [$this, 'discountHtml'], 10, 3);\n    }\n\u00a0\n    function discountHtml($coupon_html, $coupon, $discount_amount_html) {\n        if ($coupon-&gt;code == $this-&gt;coupon_code) {\n            return $discount_amount_html;\n        }\n        return $coupon_html;\n    }\n    ...<\/code><\/pre>\n<h3>Valfritt: D\u00f6ljer kupongfunktionen f\u00f6r kunder<\/h3>\n<p>Kuponger m\u00e5ste aktiveras i WooCommerce f\u00f6r att v\u00e5r rabattfunktionalitet ska fungera, men var medveten om att detta kommer att l\u00e4gga till m\u00f6jligheten f\u00f6r kunder att manuellt ange kupongkoder i b\u00e5de varukorg och kassa. Om du inte vill visa att din webbshop har kupongfunktionalitet, och s\u00e4rskilt inte till\u00e5ta kunder att manuellt ange kupongkoder, kan du ocks\u00e5 g\u00f6ra det.<\/p>\n<h4>Tar bort den fr\u00e5n kassan<\/h4>\n<p>Att ta bort kupongfunktionen fr\u00e5n kassan \u00e4r enkelt och kan g\u00f6ras inom v\u00e5r klass. Vi tar helt enkelt bort kroken som g\u00f6r kupongen &quot;l\u00e5da&quot;, som s\u00e5:<\/p>\n<pre><code>    ...\n    public function __construct() {\n        add_action('woocommerce_before_cart', [$this, 'addDiscount']);\n        add_action('woocommerce_before_checkout_form', [$this, 'addDiscount']);\n        add_filter('woocommerce_cart_totals_coupon_label', [$this, 'discountLabel'], 10, 2);\n        add_filter('woocommerce_cart_totals_coupon_html', [$this, 'discountHtml'], 10, 3);\n        remove_action('woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form', 10);\n    }\n    ...<\/code><\/pre>\n<h4>Tar bort den fr\u00e5n vagnen<\/h4>\n<p>Att ta bort kupongkodsfunktionen i varukorgen \u00e4r tyv\u00e4rr inte lika l\u00e4tt d\u00e5 detta \u00e4r h\u00e5rdkodat i en mall. Du m\u00e5ste \u00e5sidos\u00e4tta WooCommerces kundvagnsmall f\u00f6r att ta bort kupongfunktionen. Kopiera filen <code>pluginswoocommercetemplatescartcart.php<\/code>till <code>your-themewoocommercecartcart.php<\/code>.<\/p>\n<p>WooCommerces mallfiler f\u00f6r\u00e4ndras st\u00e4ndigt s\u00e5 att ge dig ett exakt radnummer skulle inte hj\u00e4lpa. Men du hittar koden som matar ut ing\u00e5ngen och knappen f\u00f6r kupong n\u00e4ra botten av filen; ser ut ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<pre><code>...\n&lt;?php if (wc_coupons_enabled()) { ?&gt;\n    &lt;div class=\"coupon\"&gt;\n        &lt;label for=\"coupon_code\"&gt;&lt;?php esc_html_e( 'Coupon:', 'woocommerce' ); ?&gt;&lt;\/label&gt; &lt;input type=\"text\" name=\"coupon_code\" class=\"input-text\" id=\"coupon_code\" value=\"\" placeholder=\"&lt;?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?&gt;\" \/&gt; &lt;button type=\"submit\" class=\"button\" name=\"apply_coupon\" value=\"&lt;?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?&gt;\"&gt;&lt;?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?&gt;&lt;\/button&gt;\n        &lt;?php do_action( 'woocommerce_cart_coupon' ); ?&gt;\n    &lt;\/div&gt;\n&lt;?php } ?&gt;\n...<\/code><\/pre>\n<p>Vad du beh\u00f6ver g\u00f6ra \u00e4r att kommentera den kupongrelaterade produktionen. Jag rekommenderar att du l\u00e4gger till en PHP-kommentar med <code>\/*<\/code>precis f\u00f6re <code>if<\/code>-check och st\u00e4nger den med <code>*\/<\/code>direkt efter den avslutande parentesen. S\u00e5h\u00e4r:<\/p>\n<pre><code>...\n&lt;?php \/* if (wc_coupons_enabled()) { ?&gt;\n    &lt;div class=\"coupon\"&gt;\n        &lt;label for=\"coupon_code\"&gt;&lt;?php esc_html_e( 'Coupon:', 'woocommerce' ); ?&gt;&lt;\/label&gt; &lt;input type=\"text\" name=\"coupon_code\" class=\"input-text\" id=\"coupon_code\" value=\"\" placeholder=\"&lt;?php esc_attr_e( 'Coupon code', 'woocommerce' ); ?&gt;\" \/&gt; &lt;button type=\"submit\" class=\"button\" name=\"apply_coupon\" value=\"&lt;?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?&gt;\"&gt;&lt;?php esc_attr_e( 'Apply coupon', 'woocommerce' ); ?&gt;&lt;\/button&gt;\n        &lt;?php do_action( 'woocommerce_cart_coupon' ); ?&gt;\n    &lt;\/div&gt;\n&lt;?php } *\/ ?&gt;\n...<\/code><\/pre>\n<p>Vid det h\u00e4r laget b\u00f6r din webbshops kupongfunktionalitet vara praktiskt taget dold f\u00f6r kunderna! Men din anpassade rabatt borde fungera perfekt.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I den h\u00e4r handledningen kommer vi att titta p\u00e5 hur man l\u00e4gger till en rabatt programm\u00e4ssigt i WooCommerce. Vi anv\u00e4nder kuponger men vi g\u00f6r det automatiskt och vi d\u00f6ljer att det \u00e4r en kupong.<\/p>\n","protected":false},"author":1,"featured_media":152867,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[901,848,901,922,1110,922,818,818,848,858,858,868,868],"tags":[1173],"class_list":["post-233563","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koda","category-handledningar","category-oevrig","category-n-a","category-plugins-3","category-woocommerce-9","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233563","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=233563"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/233563\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/152867"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=233563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=233563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=233563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}