Σημειώσεις Προγραμματισμού: Πώς να εφαρμόσετε URL κουπονιού στο WooCommerce

Το Stack Overflow είναι ο καλύτερος φίλος ενός προγραμματιστή.

Οι φίλοι μας εκεί έχουν δημοσιεύσει έναν πολύ χρήσιμο κώδικα για την εφαρμογή κουπονιών μέσω URL χωρίς την ανάγκη αγοράς κάποιου plugin.

Προσθέτοντας τον παρακάτω κώδικα στο αρχείο function.php του θέματός σας, μπορείτε να χρησιμοποιήσετε τη διεύθυνση URL στην παρακάτω μορφή και να εφαρμόσετε αυτόματα το κουπόνι κατά την επίσκεψη στον σύνδεσμο.

https://example.com/?coupon_code=mycouponcode

Είναι εξαιρετικά χρήσιμη λειτουργία, καθώς μπορείτε να μοιραστείτε συνδέσμους κουπονιών με πιθανούς πελάτες σας.

ΚΩΔΙΚΑΣ:

add_action('init', 'get_custom_coupon_code_to_session');
function get_custom_coupon_code_to_session(){
    if( isset($_GET['coupon_code']) ){
        // Ensure that customer session is started
        if( isset(WC()->session) && ! WC()->session->has_session() )
            WC()->session->set_customer_session_cookie(true);
            
        // Check and register coupon code in a custom session variable
        $coupon_code = WC()->session->get('coupon_code');
        if(empty($coupon_code)){
            $coupon_code = esc_attr( $_GET['coupon_code'] );
            WC()->session->set( 'coupon_code', $coupon_code ); // Set the coupon code in session
        }
    }
}

add_action( 'woocommerce_before_checkout_form', 'add_discout_to_checkout', 10, 0 );
function add_discout_to_checkout( ) {
    // Set coupon code
    $coupon_code = WC()->session->get('coupon_code');
    if ( ! empty( $coupon_code ) && ! WC()->cart->has_discount( $coupon_code ) ){
        WC()->cart->add_discount( $coupon_code ); // apply the coupon discount
        WC()->session->__unset('coupon_code'); // remove coupon code from session
    }
}

Μοιράσου τις σκέψεις σου