• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
Easy Digital Downloads a2z

Easy Digital Downloads a2z

Easy Digital Downloads a2z

  • Home
  • Plugins
  • Shortcodes
  • APIs
  • Classes
  • Files
  • Hooks
  • Sitemap
  • Blog
Home / APIs / EDD_CLI::download_logs() – Create sample file download log data for your EDD site

You appear to be a bot. Output may be restricted

Description

Create sample file download log data for your EDD site

OPTIONS

–number: The number of download logs to create

EXAMPLES

wp edd download_logs create –number=10

Usage

EDD_CLI::download_logs( $args, $assoc_args );

Parameters

$args
( mixed ) required –
$assoc_args
( mixed ) required –

Returns

void

Source

File name: easy-digital-downloads/includes/class-edd-cli.php
Lines:

1 to 100 of 115
  public function download_logs( $args, $assoc_args ) {
    global $wpdb, $edd_logs;

    $error = false;

    // At some point we'll likely add another action for payments
    if( ! isset( $args ) ||  count( $args ) == 0 ) {
      $error = __( 'No action specified, did you mean', 'easy-digital-downloads' );
    } elseif( isset( $args ) && ! in_array( 'create', $args ) ) {
      $error = __( 'Invalid action specified, did you mean', 'easy-digital-downloads' );
    }

    if( $error ) {
      $query = '';
      foreach( $assoc_args as $key => $value ) {
        $query .= ' --' . $key . '=' . $value;
      }

      WP_CLI::error(
        sprintf( $error . ' %s?', 'wp edd download_logs create' . $query )
      );

      return;
    }

    // Setup some defaults
    $number     = 1;

    if( count( $assoc_args ) > 0 ) {
      $number   = ( array_key_exists( 'number', $assoc_args ) ) ? absint( $assoc_args['number'] ) : $number;
    }


    // First we need to find all downloads that have files associated.
    $download_ids_with_file_meta = $wpdb->get_results( "SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE meta_key = 'edd_download_files'" );
    $download_ids_with_files     = array();
    foreach ( $download_ids_with_file_meta as $meta_item ) {
      if ( empty( $meta_item->meta_value ) ) {
        continue;
      }
      $files = maybe_unserialize( $meta_item->meta_value );

      // We have an empty array;
      if ( empty( $files ) ) {
        continue;
      }

      $download_ids_with_files[ $meta_item->post_id ] = array_keys( $files );
    }

    // Next, find all payment records that exist for the downloads that have files.
    $sales_logs_args = array(
      'post_parent'            => array_keys( $download_ids_with_files ),
      'log_type'               => 'sale',
      'posts_per_page'         => -1,
      'update_post_meta_cache' => false,
      'update_post_term_cache' => false,
    );

    $sales_logs     = $edd_logs->get_connected_logs( $sales_logs_args );
    $sales_log_meta = array();
    $payments       = array();

    // Now generate some download logs for the files.
    $progress = \WP_CLI\Utils\make_progress_bar( 'Creating File Download Logs', $number );
    $i = 1;
    while ( $i <= $number ) {
      $sales_log_key = array_rand( $sales_logs, 1 );
      $sales_log     = $sales_logs[ $sales_log_key ];
      if ( ! empty( $sales_log_meta[ $sales_log->ID ] ) ) {
        $meta = $sales_log_meta[ $sales_log->ID ];
      } else {
        $meta = get_post_meta( $sales_log->ID );
        $sales_log_meta[ $sales_log->ID ] = $meta;
      }


      $payment_id  = (int) $meta['_edd_log_payment_id'][0];
      $download_id = (int) $sales_log->post_parent;

      if ( isset( $meta['_edd_log_price_id'] ) ) {
        $price_id = (int) $meta['_edd_log_price_id'][0];
      } else {
        $price_id = false;
      }

      if ( ! isset( $payments[ $payment_id ] ) ) {
        $payment                 = edd_get_payment( $payment_id );
        $payments[ $payment_id ] = $payment;
      } else {
        $payment = $payments[ $payment_id ];
      }

      $customer = new EDD_Customer( $payment->customer_id );

      $user_info = array(
        'email' => $payment->email,
        'id'    => $payment->user_id,
        'name'  => $customer->name,
      );
 
[1] [2] Next »

 View on GitHub View on Trac

Published: 26th November 2019 | Last updated: 14th November 2021

Primary Sidebar

Information

Function name: EDD_CLI::download_logs
Class ref: EDD_CLI
Plugin ref: Easy Digital Downloads
Version: 2.11.6
Sourcefile: includes/class-edd-cli.php
File ref: includes/class-edd-cli.php
Deprecated?: No
API Letters: C,D,E,L

Footer

Easy Digital Downloads a2z
Easy Digital Downloads a2z
Easy Digital Downloads a2z
WordPress 5.9.3
WordPress a2z
WordPress core a2z
Genesis Theme Framework a2z
Jetpack a2z
WordPress develop tests
Easy Digital Downloads a2z
WooCommerce a2z
Yoast SEO a2z
WordPress Blocks

Site:  edd.wp-a2z.org
© Copyright Easy Digital Downloads a2z 2014-2022. All rights reserved.


Website designed and developed by Herb Miller
Proudly powered by WordPress and oik plugins

  • Home
  • Blog
  • Sitemap
  • Sites