Plugin Directory

Changeset 2056374


Ignore:
Timestamp:
03/24/2019 07:21:33 PM (7 years ago)
Author:
danillonunes
Message:

Load donations in background

File:
1 edited

Legend:

Unmodified
Added
Removed
  • makemydonation-imo/trunk/mmdimo.php

    r2055658 r2056374  
    3838require_once( MMDIMO_PLUGIN_DIR . '/template.php' );
    3939
     40require_once( MMDIMO_PLUGIN_DIR . '/lib/wp-background-processing/classes/wp-async-request.php' );
     41require_once( MMDIMO_PLUGIN_DIR . '/lib/wp-background-processing/classes/wp-background-process.php' );
     42
    4043if ( is_admin() ) {
    4144  add_action( 'admin_init', 'mmdimo_admin_init' );
     
    248251
    249252function mmdimo_load_donations_by_post( $post_id = 0, $count = FALSE ) {
    250   $post = get_post( $post );
    251   $id = isset( $post->ID ) ? $post->ID : 0;
     253  $now = time();
     254
     255  $meta_id = $count ? 'mmdimo_donations_count' : 'mmdimo_donations';
     256
     257  $donations = get_post_meta( $post_id, $meta_id, TRUE );
     258
     259  if ( !$donations ) {
     260    $donations = array(
     261      'content' => '',
     262      'expires' => 0
     263    );
     264  }
     265
     266  if ( $now > $donations['expires'] ) {
     267    require_once( MMDIMO_PLUGIN_DIR . '/classes/mmdimo-load-donations.php' );
     268    $load_donations = new MMDIMO_Load_Donations();
     269
     270    $load_donations->push_to_queue( array( 'post_id' => $post_id, 'count' => $count ) );
     271    $load_donations->save();
     272  }
     273
     274
     275  return $donations['content'];
     276}
     277
     278function mmdimo_load_donations_by_post_process( $post_id = 0, $count = FALSE ) {
    252279  $now = time();
    253280  $expires = 60 * 60;
     
    256283
    257284  $donations = array(
    258     'content' => ''
     285    'content' => '',
     286    'expires' => 0
    259287  );
    260288
    261   $cached_donations = get_post_meta( $id, $meta_id, TRUE );
    262 
    263   if ( $cached_donations && isset($cached_donations['expires']) && $cached_donations['expires'] > $now ) {
    264     $donations = $cached_donations;
    265   }
    266   else {
    267     $mmdimo_case = get_post_meta( $id, 'mmdimo_case', TRUE );
    268     $case_id = $mmdimo_case && isset( $mmdimo_case['id'] ) ? $mmdimo_case['id'] : NULL;
    269     require_once( MMDIMO_PLUGIN_DIR . '/api.php' );
    270 
    271     if ( $case_id && $content = mmdimo_api_case_donations_load($case_id, $count) ) {
    272 
    273       $donations = array(
    274         'content' => $content,
    275         'expires' => $now + $expires
    276       );
    277 
    278       update_post_meta( $id, $meta_id, $donations );
    279     }
    280   }
    281 
    282 
    283   return $donations['content'];
     289  $mmdimo_case = get_post_meta( $post_id, 'mmdimo_case', TRUE );
     290  $case_id = $mmdimo_case && isset( $mmdimo_case['id'] ) ? $mmdimo_case['id'] : NULL;
     291  require_once( MMDIMO_PLUGIN_DIR . '/api.php' );
     292
     293  if ( $case_id && $content = mmdimo_api_case_donations_load($case_id, $count) ) {
     294    $donations['content'] = $content;
     295    $donations['expires'] = $now + $expires;
     296    update_post_meta( $post_id, $meta_id, $donations );
     297  }
     298
     299  return $donations;
    284300}
    285301
Note: See TracChangeset for help on using the changeset viewer.