1 <?php
2 3 4 5 6 7 8 9 10
11
12
13 if ( ! defined( 'ABSPATH' ) ) exit;
14
15 16 17 18 19 20 21 22
23 function edd_add_discount( $data ) {
24 if ( wp_verify_nonce( $data['edd-discount-nonce'], 'edd_discount_nonce' ) ) {
25
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
38 $posted['status'] = 'active';
39 $save = edd_store_discount( $posted );
40 }
41 }
42 add_action( 'edd_add_discount', 'edd_add_discount' );
43
44 45 46 47 48 49 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
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 79 80 81 82 83 84 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 97 98 99 100 101 102 103 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 113 114 115 116 117 118 119 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' );