Code Duplication    Length = 50-50 lines in 3 locations

includes/wpinv-email-functions.php 3 locations

@@ 85-134 (lines=50) @@
82
    do_action_ref_array( $function, $args );
83
}
84
    
85
function wpinv_new_invoice_notification( $invoice_id, $new_status = '' ) {
86
    global $wpinv_email_search, $wpinv_email_replace;
87
    
88
    $email_type = 'new_invoice';
89
    if ( !wpinv_email_is_enabled( $email_type ) ) {
90
        return false;
91
    }
92
    
93
    $invoice = wpinv_get_invoice( $invoice_id );
94
    if ( empty( $invoice ) ) {
95
        return false;
96
    }
97
98
    if ( !("wpi_invoice" === $invoice->post_type) ) {
99
        return false;
100
    }
101
    
102
    $recipient      = wpinv_email_get_recipient( $email_type, $invoice_id, $invoice );
103
    if ( !is_email( $recipient ) ) {
104
        return false;
105
    }
106
        
107
    $search                     = array();
108
    $search['invoice_number']   = '{invoice_number}';
109
    $search['invoice_date']     = '{invoice_date}';
110
    $search['name']             = '{name}';
111
    
112
    $replace                    = array();
113
    $replace['invoice_number']  = $invoice->get_number();
114
    $replace['invoice_date']    = $invoice->get_invoice_date();
115
    $replace['name']            = $invoice->get_user_full_name();
116
    
117
    $wpinv_email_search     = $search;
118
    $wpinv_email_replace    = $replace;
119
    
120
    $subject        = wpinv_email_get_subject( $email_type, $invoice_id, $invoice );
121
    $email_heading  = wpinv_email_get_heading( $email_type, $invoice_id, $invoice );
122
    $headers        = wpinv_email_get_headers( $email_type, $invoice_id, $invoice );
123
    $attachments    = wpinv_email_get_attachments( $email_type, $invoice_id, $invoice );
124
    
125
    $content        = wpinv_get_template_html( 'emails/wpinv-email-' . $email_type . '.php', array(
126
            'invoice'       => $invoice,
127
            'email_type'    => $email_type,
128
            'email_heading' => $email_heading,
129
            'sent_to_admin' => true,
130
            'plain_text'    => false,
131
        ) );
132
    
133
    return wpinv_mail_send( $recipient, $subject, $content, $headers, $attachments );
134
}
135
136
function wpinv_cancelled_invoice_notification( $invoice_id, $new_status = '' ) {
137
    global $wpinv_email_search, $wpinv_email_replace;
@@ 136-185 (lines=50) @@
133
    return wpinv_mail_send( $recipient, $subject, $content, $headers, $attachments );
134
}
135
136
function wpinv_cancelled_invoice_notification( $invoice_id, $new_status = '' ) {
137
    global $wpinv_email_search, $wpinv_email_replace;
138
    
139
    $email_type = 'cancelled_invoice';
140
    if ( !wpinv_email_is_enabled( $email_type ) ) {
141
        return false;
142
    }
143
    
144
    $invoice = wpinv_get_invoice( $invoice_id );
145
    if ( empty( $invoice ) ) {
146
        return false;
147
    }
148
149
    if ( !("wpi_invoice" === $invoice->post_type) ) {
150
        return false;
151
    }
152
    
153
    $recipient      = wpinv_email_get_recipient( $email_type, $invoice_id, $invoice );
154
    if ( !is_email( $recipient ) ) {
155
        return false;
156
    }
157
        
158
    $search                     = array();
159
    $search['invoice_number']   = '{invoice_number}';
160
    $search['invoice_date']     = '{invoice_date}';
161
    $search['name']             = '{name}';
162
    
163
    $replace                    = array();
164
    $replace['invoice_number']  = $invoice->get_number();
165
    $replace['invoice_date']    = $invoice->get_invoice_date();
166
    $replace['name']            = $invoice->get_user_full_name();
167
    
168
    $wpinv_email_search     = $search;
169
    $wpinv_email_replace    = $replace;
170
    
171
    $subject        = wpinv_email_get_subject( $email_type, $invoice_id, $invoice );
172
    $email_heading  = wpinv_email_get_heading( $email_type, $invoice_id, $invoice );
173
    $headers        = wpinv_email_get_headers( $email_type, $invoice_id, $invoice );
174
    $attachments    = wpinv_email_get_attachments( $email_type, $invoice_id, $invoice );
175
    
176
    $content        = wpinv_get_template_html( 'emails/wpinv-email-' . $email_type . '.php', array(
177
            'invoice'       => $invoice,
178
            'email_type'    => $email_type,
179
            'email_heading' => $email_heading,
180
            'sent_to_admin' => true,
181
            'plain_text'    => false,
182
        ) );
183
    
184
    return wpinv_mail_send( $recipient, $subject, $content, $headers, $attachments );
185
}
186
187
function wpinv_failed_invoice_notification( $invoice_id, $new_status = '' ) {
188
    global $wpinv_email_search, $wpinv_email_replace;
@@ 187-236 (lines=50) @@
184
    return wpinv_mail_send( $recipient, $subject, $content, $headers, $attachments );
185
}
186
187
function wpinv_failed_invoice_notification( $invoice_id, $new_status = '' ) {
188
    global $wpinv_email_search, $wpinv_email_replace;
189
    
190
    $email_type = 'failed_invoice';
191
    if ( !wpinv_email_is_enabled( $email_type ) ) {
192
        return false;
193
    }
194
    
195
    $invoice = wpinv_get_invoice( $invoice_id );
196
    if ( empty( $invoice ) ) {
197
        return false;
198
    }
199
200
    if ( !("wpi_invoice" === $invoice->post_type) ) {
201
        return false;
202
    }
203
    
204
    $recipient      = wpinv_email_get_recipient( $email_type, $invoice_id, $invoice );
205
    if ( !is_email( $recipient ) ) {
206
        return false;
207
    }
208
        
209
    $search                     = array();
210
    $search['invoice_number']   = '{invoice_number}';
211
    $search['invoice_date']     = '{invoice_date}';
212
    $search['name']             = '{name}';
213
    
214
    $replace                    = array();
215
    $replace['invoice_number']  = $invoice->get_number();
216
    $replace['invoice_date']    = $invoice->get_invoice_date();
217
    $replace['name']            = $invoice->get_user_full_name();
218
    
219
    $wpinv_email_search     = $search;
220
    $wpinv_email_replace    = $replace;
221
    
222
    $subject        = wpinv_email_get_subject( $email_type, $invoice_id, $invoice );
223
    $email_heading  = wpinv_email_get_heading( $email_type, $invoice_id, $invoice );
224
    $headers        = wpinv_email_get_headers( $email_type, $invoice_id, $invoice );
225
    $attachments    = wpinv_email_get_attachments( $email_type, $invoice_id, $invoice );
226
    
227
    $content        = wpinv_get_template_html( 'emails/wpinv-email-' . $email_type . '.php', array(
228
            'invoice'       => $invoice,
229
            'email_type'    => $email_type,
230
            'email_heading' => $email_heading,
231
            'sent_to_admin' => true,
232
            'plain_text'    => false,
233
        ) );
234
    
235
    return wpinv_mail_send( $recipient, $subject, $content, $headers, $attachments );
236
}
237
238
function wpinv_onhold_invoice_notification( $invoice_id, $new_status = '' ) {
239
    global $wpinv_email_search, $wpinv_email_replace;