Changeset 4316 for sites/trunk/wordcamp.org/public_html/wp-content/plugins/camptix-badge-generator/includes/html-badges.php
- Timestamp:
- 11/01/2016 08:58:43 PM (7 years ago)
- 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 12 12 add_action( 'wp_enqueue_scripts', __NAMESPACE__ . '\enqueue_previewer_scripts', 999 ); // after remove_all_previewer_styles() 13 13 add_filter( 'template_include', __NAMESPACE__ . '\use_badges_template' ); 14 add_filter( 'get_post_metadata', __NAMESPACE__ . '\add_dynamic_post_meta', 10, 3 );15 14 16 15 /** … … 215 214 ); 216 215 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(); 222 217 223 218 require( dirname( __DIR__ ) . '/views/html-badges/template-badges.php' ); 224 }225 226 /**227 * Add dynamically-generated "post meta" to `\WP_Post` objects228 *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 like231 * `$foo = some_custom_logic( get_post_meta( $post->ID, 'bar', true ) ); echo esc_html( $foo )`.232 *233 * @param mixed $value234 * @param int $post_id235 * @param string $meta_key236 *237 * @return mixed238 * `null` to instruct `get_metadata()` to pull the value from the database239 * Any non-null value will be returned as if it were pulled from the database240 */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_name266 );267 break;268 }269 270 return $value;271 }272 273 /**274 * Get the CSS classes for an attendee element275 *276 * @param \WP_Post $attendee277 *278 * @return string279 */280 function get_css_classes( $attendee ) {281 // Name282 $classes = array( 'attendee-' . $attendee->post_name );283 284 // Ticket285 $ticket = get_post( $attendee->tix_ticket_id );286 $classes[] = 'ticket-' . $ticket->post_name;287 288 // Coupon289 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 );295 219 } 296 220
Note: See TracChangeset
for help on using the changeset viewer.