Easy Digital Downloads
  • Package
  • Function
  • Tree

Packages

  • EDD
    • Admin
      • Actions
      • Add-ons
      • Dashboard
      • Discounts
      • Downloads
      • Export
      • Notices
      • Pages
      • Payments
      • Reports
      • Settings
      • System
      • Upgrades
      • Upload
      • Welcome
    • Cart
    • Checkout
    • Classes
      • API
      • Fees
      • HTML
      • Roles
      • Session
    • Emails
    • Functions
      • AJAX
      • Compatibility
      • Errors
      • Formatting
      • Install
      • Login
      • Taxes
      • Templates
    • Gateways
    • Logging
    • Payments
    • Shortcodes
    • Widgets

Classes

  • EDD_Discount_Codes_Table

Functions

  • edd_activate_discount
  • edd_add_discount
  • edd_deactivate_discount
  • edd_delete_discount
  • edd_discounts_contextual_help
  • edd_discounts_page
  • edd_edit_discount
  1 <?php
  2 /**
  3  * Discount Actions
  4  *
  5  * @package     EDD
  6  * @subpackage  Admin/Discounts
  7  * @copyright   Copyright (c) 2013, Pippin Williamson
  8  * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
  9  * @since       1.0.8.1
 10  */
 11 
 12 // Exit if accessed directly
 13 if ( ! defined( 'ABSPATH' ) ) exit;
 14 
 15 /**
 16  * Sets up and stores a new discount code
 17  *
 18  * @since 1.0
 19  * @param array $data Discount code data
 20  * @uses edd_store_discount()
 21  * @return void
 22  */
 23 function edd_add_discount( $data ) {
 24     if ( wp_verify_nonce( $data['edd-discount-nonce'], 'edd_discount_nonce' ) ) {
 25         // Setup the discount code details
 26         $posted = array();
 27 
 28         foreach ( $data as $key => $value ) {
 29             if ( $key != 'edd-discount-nonce' && $key != 'edd-action' ) {
 30                 if ( is_string( $value ) || is_int( $value ) )
 31                     $posted[ $key ] = strip_tags( addslashes( $value ) );
 32                 elseif ( is_array( $value ) )
 33                     $posted[ $key ] = array_map( 'absint', $value );
 34             }
 35         }
 36 
 37         // Set the discount code's default status to active
 38         $posted['status'] = 'active';
 39         $save = edd_store_discount( $posted );
 40     }
 41 }
 42 add_action( 'edd_add_discount', 'edd_add_discount' );
 43 
 44 /**
 45  * Saves an edited discount
 46  *
 47  * @since 1.0
 48  * @param array $data Discount code data
 49  * @return void
 50  */
 51 function edd_edit_discount( $data ) {
 52     if ( isset( $data['edd-discount-nonce'] ) && wp_verify_nonce( $data['edd-discount-nonce'], 'edd_discount_nonce' ) ) {
 53         // Setup the discount code details
 54         $discount = array();
 55 
 56         foreach ( $data as $key => $value ) {
 57             if ( $key != 'edd-discount-nonce' && $key != 'edd-action' && $key != 'discount-id' && $key != 'edd-redirect' ) {
 58                 if ( is_string( $value ) || is_int( $value ) )
 59                     $discount[ $key ] = strip_tags( addslashes( $value ) );
 60                 elseif ( is_array( $value ) )
 61                     $discount[ $key ] = array_map( 'absint', $value );
 62             }
 63         }
 64 
 65         $old_discount = edd_get_discount_by_code( $data['code'] );
 66         $discount['uses'] = edd_get_discount_uses( $old_discount->ID );
 67 
 68         if ( edd_store_discount( $discount, $data['discount-id'] ) ) {
 69             wp_redirect( add_query_arg( 'edd-message', 'discount_updated', $data['edd-redirect'] ) ); exit;
 70         } else {
 71             wp_redirect( add_query_arg( 'edd-message', 'discount_update_failed', $data['edd-redirect'] ) ); exit;
 72         }
 73     }
 74 }
 75 add_action( 'edd_edit_discount', 'edd_edit_discount' );
 76 
 77 /**
 78  * Listens for when a discount delete button is clicked and deletes the
 79  * discount code
 80  *
 81  * @since 1.0
 82  * @param array $data Discount code data
 83  * @uses edd_remove_discount()
 84  * @return void
 85  */
 86 function edd_delete_discount( $data ) {
 87     if ( ! isset( $data['_wpnonce'] ) || ! wp_verify_nonce( $data['_wpnonce'], 'edd_discount_nonce' ) )
 88         wp_die( __( 'Trying to cheat or something?', 'edd' ), __( 'Error', 'edd' ) );
 89 
 90     $discount_id = $data['discount'];
 91     edd_remove_discount( $discount_id );
 92 }
 93 add_action( 'edd_delete_discount', 'edd_delete_discount' );
 94 
 95 /**
 96  * Activates Discount Code
 97  *
 98  * Sets a discount code's status to active
 99  *
100  * @since 1.0
101  * @param array $data Discount code data
102  * @uses edd_update_discount_status()
103  * @return void
104  */
105 function edd_activate_discount( $data ) {
106     $id = $data['discount'];
107     edd_update_discount_status( $id, 'active' );
108 }
109 add_action( 'edd_activate_discount', 'edd_activate_discount' );
110 
111 /**
112  * Deactivate Discount
113  *
114  * Sets a discount code's status to deactive
115  *
116  * @since 1.0
117  * @param array $data Discount code data
118  * @uses edd_update_discount_status()
119  * @return void
120 */
121 function edd_deactivate_discount( $data) {
122     $id = $data['discount'];
123     edd_update_discount_status( $id, 'inactive' );
124 }
125 add_action( 'edd_deactivate_discount', 'edd_deactivate_discount' );
Easy Digital Downloads API documentation generated by ApiGen 2.8.0