Making WordPress.org


Ignore:
Timestamp:
11/01/2016 08:58:43 PM (10 years ago)
Author:
iandunn
Message:

CampTix Badge Generator: Move attendee data functionality to common.php

This makes it accessible by both the HTML module and the InDesign module.

See #262

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordcamp.org/public_html/wp-content/plugins/camptix-badge-generator/includes/html-badges.php

    r4315 r4316  
    1212add_action( 'wp_enqueue_scripts',    __NAMESPACE__ . '\enqueue_previewer_scripts',   999 );  // after remove_all_previewer_styles()
    1313add_filter( 'template_include',      __NAMESPACE__ . '\use_badges_template'              );
    14 add_filter( 'get_post_metadata',     __NAMESPACE__ . '\add_dynamic_post_meta', 10, 3     );
    1514
    1615/**
     
    215214        );
    216215
    217         $attendees = get_posts( array(
    218                 'post_type'      => 'tix_attendee',
    219                 'posts_per_page' => -1,
    220                 'orderby'        => 'title',
    221         ) );
     216        $attendees = Badge_Generator\get_attendees();
    222217
    223218        require( dirname( __DIR__ ) . '/views/html-badges/template-badges.php' );
    224 }
    225 
    226 /**
    227  * Add dynamically-generated "post meta" to `\WP_Post` objects
    228  *
    229  * This makes it possible to access dynamic data related to a post object by simply referencing `$post->foo`.
    230  * That keeps the calling code much cleaner than if it were to have to do something like
    231  * `$foo = some_custom_logic( get_post_meta( $post->ID, 'bar', true ) ); echo esc_html( $foo )`.
    232  *
    233  * @param mixed  $value
    234  * @param int    $post_id
    235  * @param string $meta_key
    236  *
    237  * @return mixed
    238  *      `null` to instruct `get_metadata()` to pull the value from the database
    239  *      Any non-null value will be returned as if it were pulled from the database
    240  */
    241 function add_dynamic_post_meta( $value, $post_id, $meta_key ) {
    242         /** @global \CampTix_Plugin $camptix */
    243         global $camptix;
    244 
    245         $attendee = get_post( $post_id );
    246 
    247         if ( 'tix_attendee' != $attendee->post_type ) {
    248                 return $value;
    249         }
    250 
    251         switch ( $meta_key ) {
    252                 case 'avatar_url':
    253                         $value = get_avatar_url( $attendee->tix_email, array( 'size' => 600 ) );
    254                         break;
    255 
    256                 case 'css_classes':
    257                         $value = get_css_classes( $attendee );
    258                         break;
    259 
    260                 case 'formatted_name':
    261                         $value = $camptix->format_name_string(
    262                                 '<span class="first-name">%first%</span>
    263                                  <span class="last-name">%last%</span>',
    264                                 $attendee->tix_first_name,
    265                                 $attendee->tix_last_name
    266                         );
    267                         break;
    268         }
    269 
    270         return $value;
    271 }
    272 
    273 /**
    274  * Get the CSS classes for an attendee element
    275  *
    276  * @param \WP_Post $attendee
    277  *
    278  * @return string
    279  */
    280 function get_css_classes( $attendee ) {
    281         // Name
    282         $classes = array( 'attendee-' . $attendee->post_name );
    283 
    284         // Ticket
    285         $ticket    = get_post( $attendee->tix_ticket_id );
    286         $classes[] = 'ticket-' . $ticket->post_name;
    287 
    288         // Coupon
    289         if ( $attendee->tix_coupon_id ) {
    290                 $coupon    = get_post( $attendee->tix_coupon_id );
    291                 $classes[] = 'coupon-' . $coupon->post_name;
    292         }
    293 
    294         return implode( ' ', $classes );
    295219}
    296220
Note: See TracChangeset for help on using the changeset viewer.