コード例 #1
0
/**
 * Admin notification 
 */
function edd_pre_approval_emails_send_admin_email($payment_id = 0, $payment_data = array())
{
    $payment_id = absint($payment_id);
    // get payment data from payment ID
    $payment_data = edd_get_payment_meta($payment_id);
    if (empty($payment_id)) {
        return;
    }
    if (!edd_get_payment_by('id', $payment_id)) {
        return;
    }
    $from_name = edd_get_option('from_name', wp_specialchars_decode(get_bloginfo('name'), ENT_QUOTES));
    $from_name = apply_filters('edd_purchase_from_name', $from_name, $payment_id, $payment_data);
    $from_email = edd_get_option('from_email', get_bloginfo('admin_email'));
    $from_email = apply_filters('edd_purchase_from_address', $from_email, $payment_id, $payment_data);
    $subject = sprintf(__('New pledge - Order #%1$s', 'edd-pre-approval-emails'), $payment_id);
    $subject = wp_strip_all_tags($subject);
    $subject = edd_do_email_tags($subject, $payment_id);
    $headers = "From: " . stripslashes_deep(html_entity_decode($from_name, ENT_COMPAT, 'UTF-8')) . " <{$from_email}>\r\n";
    $headers .= "Reply-To: " . $from_email . "\r\n";
    $headers .= "Content-Type: text/html; charset=utf-8\r\n";
    $headers = apply_filters('edd_admin_pledge_notification_headers', $headers, $payment_id, $payment_data);
    $attachments = apply_filters('edd_admin_pledge_notification_attachments', array(), $payment_id, $payment_data);
    $message = edd_pre_approval_emails_get_admin_email_body($payment_id, $payment_data);
    if (class_exists('EDD_Emails')) {
        $emails = EDD()->emails;
        $emails->__set('from_name', $from_name);
        $emails->__set('from_email', $from_email);
        $emails->__set('headers', $headers);
        $emails->__set('heading', __('New Pledge!', 'edd-pre-approval-emails'));
        $emails->send(edd_get_admin_notice_emails(), $subject, $message, $attachments);
    }
}
コード例 #2
0
/**
 * Get Download File Url
 * Constructs the file download url for a specific file.
 *
 * @since 1.0
 *
 * @param string $key
 * @param string $email Customer email address
 * @param int    $filekey
 * @param int    $download_id
 * @param bool   $price_id
 *
 * @return string Constructed download URL
 */
function edd_get_download_file_url($key, $email, $filekey, $download_id = 0, $price_id = false)
{
    $hours = absint(edd_get_option('download_link_expiration', 24));
    if (!($date = strtotime('+' . $hours . 'hours', current_time('timestamp')))) {
        $date = 2147472000;
        // Highest possible date, January 19, 2038
    }
    // Leaving in this array and the filter for backwards compatibility now
    $old_args = array('download_key' => rawurlencode($key), 'email' => rawurlencode($email), 'file' => rawurlencode($filekey), 'price_id' => (int) $price_id, 'download_id' => $download_id, 'expire' => rawurlencode($date));
    $params = apply_filters('edd_download_file_url_args', $old_args);
    $payment = edd_get_payment_by('key', $params['download_key']);
    if (!$payment) {
        return false;
    }
    if (!empty($payment->ID)) {
        // Simply the URL by concatenating required data using a colon as a delimiter.
        $args = array('eddfile' => rawurlencode(sprintf('%d:%d:%d:%d', $payment->ID, $params['download_id'], $params['file'], $price_id)));
        if (isset($params['expire'])) {
            $args['ttl'] = $params['expire'];
        }
        // Ensure all custom args registered with extensions through edd_download_file_url_args get added to the URL, but without adding all the old args
        $args = array_merge($args, array_diff_key($params, $old_args));
        $args = apply_filters('edd_get_download_file_url_args', $args, $payment->ID, $params);
        $args['file'] = $params['file'];
        $args['token'] = edd_get_download_token(add_query_arg($args, untrailingslashit(home_url())));
    }
    $download_url = add_query_arg($args, home_url('index.php'));
    return $download_url;
}
コード例 #3
0
 /**
  * Retrieves Recent Sales
  *
  * @access public
  * @since  1.5
  * @return array
  */
 public function get_recent_sales()
 {
     global $wp_query;
     $sales = array();
     if (!user_can($this->user_id, 'view_shop_reports') && !$this->override) {
         return $sales;
     }
     if (isset($wp_query->query_vars['id'])) {
         $query = array();
         $query[] = new EDD_Payment($wp_query->query_vars['id']);
     } elseif (isset($wp_query->query_vars['purchasekey'])) {
         $query = array();
         $query[] = edd_get_payment_by('key', $wp_query->query_vars['purchasekey']);
     } elseif (isset($wp_query->query_vars['email'])) {
         $query = edd_get_payments(array('fields' => 'ids', 'meta_key' => '_edd_payment_user_email', 'meta_value' => $wp_query->query_vars['email'], 'number' => $this->per_page(), 'page' => $this->get_paged(), 'status' => 'publish'));
     } else {
         $query = edd_get_payments(array('fields' => 'ids', 'number' => $this->per_page(), 'page' => $this->get_paged(), 'status' => 'publish'));
     }
     if ($query) {
         $i = 0;
         foreach ($query as $payment) {
             if (is_numeric($payment)) {
                 $payment = new EDD_Payment($payment);
             }
             $payment_meta = $payment->get_meta();
             $user_info = $payment->user_info;
             $sales['sales'][$i]['ID'] = $payment->number;
             $sales['sales'][$i]['transaction_id'] = $payment->transaction_id;
             $sales['sales'][$i]['key'] = $payment->key;
             $sales['sales'][$i]['discount'] = !empty($payment->discounts) ? explode(',', $payment->discounts) : array();
             $sales['sales'][$i]['subtotal'] = $payment->subtotal;
             $sales['sales'][$i]['tax'] = $payment->tax;
             $sales['sales'][$i]['fees'] = $payment->fees;
             $sales['sales'][$i]['total'] = $payment->total;
             $sales['sales'][$i]['gateway'] = $payment->gateway;
             $sales['sales'][$i]['email'] = $payment->email;
             $sales['sales'][$i]['date'] = $payment->date;
             $sales['sales'][$i]['products'] = array();
             $c = 0;
             foreach ($payment->cart_details as $key => $item) {
                 $item_id = isset($item['id']) ? $item['id'] : $item;
                 $price = isset($item['price']) ? $item['price'] : false;
                 $price_id = isset($item['item_number']['options']['price_id']) ? $item['item_number']['options']['price_id'] : null;
                 $quantity = isset($item['quantity']) && $item['quantity'] > 0 ? $item['quantity'] : 1;
                 if (!$price) {
                     // This function is only used on payments with near 1.0 cart data structure
                     $price = edd_get_download_final_price($item_id, $user_info, null);
                 }
                 $price_name = '';
                 if (isset($item['item_number']) && isset($item['item_number']['options'])) {
                     $price_options = $item['item_number']['options'];
                     if (isset($price_options['price_id'])) {
                         $price_name = edd_get_price_option_name($item_id, $price_options['price_id'], $payment->ID);
                     }
                 }
                 $sales['sales'][$i]['products'][$c]['id'] = $item_id;
                 $sales['sales'][$i]['products'][$c]['quantity'] = $quantity;
                 $sales['sales'][$i]['products'][$c]['name'] = get_the_title($item_id);
                 $sales['sales'][$i]['products'][$c]['price'] = $price;
                 $sales['sales'][$i]['products'][$c]['price_name'] = $price_name;
                 $c++;
             }
             $i++;
         }
     }
     return $sales;
 }
コード例 #4
0
/**
 * Filter purchase summaries to adapt for Stripe deposits
 *
 * @since       1.0.4
 * @param       string $summary The current summary
 * @param       array $purchase_data The data for a given purchase
 * @param       bool $email
 * @return      string $summary The updated summary
 */
function edd_wallet_maybe_override_summary($summary, $purchase_data, $email)
{
    // Get the payment ID
    $payment = edd_get_payment_by('key', $purchase_data['purchase_key']);
    if ($payment) {
        $payment_id = $payment->ID;
        // Get the payment fees
        $fees = edd_get_payment_fees($payment_id);
        if ($fees && count($fees) == 1) {
            if ($fees[0]['id'] == 'edd-wallet-deposit') {
                $summary = edd_get_option('edd_wallet_deposit_description', __('Deposit to wallet', 'edd-wallet'));
            }
        }
    }
    return $summary;
}
コード例 #5
0
/**
 * Sends the Admin Sale Notification Email
 *
 * @since 1.4.2
 * @param int $payment_id Payment ID (default: 0)
 * @param array $payment_data Payment Meta and Data
 * @return void
 */
function edd_admin_email_notice($payment_id = 0, $payment_data = array())
{
    $payment_id = absint($payment_id);
    if (empty($payment_id)) {
        return;
    }
    if (!edd_get_payment_by('id', $payment_id)) {
        return;
    }
    $from_name = edd_get_option('from_name', wp_specialchars_decode(get_bloginfo('name'), ENT_QUOTES));
    $from_name = apply_filters('edd_purchase_from_name', $from_name, $payment_id, $payment_data);
    $from_email = edd_get_option('from_email', get_bloginfo('admin_email'));
    $from_email = apply_filters('edd_admin_sale_from_address', $from_email, $payment_id, $payment_data);
    $subject = edd_get_option('sale_notification_subject', sprintf(__('New download purchase - Order #%1$s', 'edd'), $payment_id));
    $subject = apply_filters('edd_admin_sale_notification_subject', wp_strip_all_tags($subject), $payment_id);
    $subject = edd_do_email_tags($subject, $payment_id);
    $headers = "From: " . stripslashes_deep(html_entity_decode($from_name, ENT_COMPAT, 'UTF-8')) . " <{$from_email}>\r\n";
    $headers .= "Reply-To: " . $from_email . "\r\n";
    //$headers  .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=utf-8\r\n";
    $headers = apply_filters('edd_admin_sale_notification_headers', $headers, $payment_id, $payment_data);
    $attachments = apply_filters('edd_admin_sale_notification_attachments', array(), $payment_id, $payment_data);
    $message = edd_get_sale_notification_body_content($payment_id, $payment_data);
    $emails = EDD()->emails;
    $emails->__set('from_name', $from_name);
    $emails->__set('from_email', $from_email);
    $emails->__set('headers', $headers);
    $emails->__set('heading', __('New Sale!', 'edd'));
    $emails->send(edd_get_admin_notice_emails(), $subject, $message, $attachments);
}