Tag: coupon

  • How to create Custom Coupon Types in WooCommerce

    Coupons are one of WooCommerce’s greatest assets; everyone loves a discount. However, the default types and restrictions may not be exactly what you’re looking for and you may need to extend the functionality. After being recently commissioned to extend the coupon functionality of a stable (all be it old), 2.3.11 installation, finding the right places to hook into…

  • woocommerce_process_shop_coupon_meta

    This is the filter that is responsible for saving your field data for the coupon. [php] function webdav_newcoupon_save_data( $post_id ) { $newcoupon_fields = array ( // Your fields should be listed here as an array of // strings. ); foreach ($newcoupon_fields as $field) { $value = isset($_POST[ $field ]) ? $_POST[ $field ] : ”;…

  • woocommerce_coupon_data_panels

    This is the contents of the options panel and where you will list all of your fields to display and how they will be displayed. [php] function webdav_newcoupon_data_panels() { global $woocommerce, $post; echo ‘<div id="webdav_newcoupon_data" class="panel woocommerce_options_panel">’; // Your coupon type options will go in here echo ‘</div>’; } add_action(‘woocommerce_coupon_data_panels’, ‘webdav_newcoupon_data_panels’); [/php]

  • woocommerce_coupon_data_tabs

    This is for creating a tab panel in the admin coupon screen when creating a new coupon. [php] function webdav_newcoupon_data_tabs( $tabs ) { $tabs[‘webdav_newcoupon_data’] = array( ‘label’  => __( ‘WebDav Coupon’, ‘webdav-coupon-plugin’ ), ‘target’ => ‘webdav_newcoupon_data’, ‘class’  => ‘webdav_newcoupon_data’ ); return $tabs; } add_filter( ‘woocommerce_coupon_data_tabs’, ‘webdav_newcoupon_data_tabs’, 100, 1 ); [/php]  

  • woocommerce_coupon_discount_types

    Intercept the coupon types and do what you will, add or remove as you see fit. [php] <?php function webdav_newcoupon_type ($discount_types) { // Custom Code here return $discount_types; } add_filter (‘woocommerce_coupon_discount_types’, ‘webdav_newcoupon_type’, 10, 1); ?> [/php]