Changeset 4315 for sites/trunk/wordcamp.org/public_html/wp-content/plugins/camptix-badge-generator/includes/html-badges.php
- Timestamp:
- 11/01/2016 08:58:38 PM (8 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
r3015 r4315 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 ); 14 15 15 16 /** … … 176 177 */ 177 178 function is_badges_preview() { 179 /** @global \WP_Customize_Manager $wp_customize */ 178 180 global $wp_customize; 179 181 … … 204 206 */ 205 207 function render_badges_template() { 206 /** @ var $camptix \CampTix_Plugin*/208 /** @global \CampTix_Plugin $camptix */ 207 209 global $camptix; 208 210 209 211 $allowed_html = array( 210 212 'span' => array( … … 212 214 ), 213 215 ); 214 216 215 217 $attendees = get_posts( array( 216 218 'post_type' => 'tix_attendee', … … 223 225 224 226 /** 225 * Get all the data required to render an attendee badge 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 226 275 * 227 276 * @param \WP_Post $attendee 228 277 * 229 * @return array 230 */ 231 function get_attendee_data( $attendee ) { 232 /** @var $camptix \CampTix_Plugin */ 233 global $camptix; 234 $css_classes = array( 'attendee-' . $attendee->post_name ); 235 236 $first_name = get_post_meta( $attendee->ID, 'tix_first_name', true ); 237 $last_name = get_post_meta( $attendee->ID, 'tix_last_name', true ); 238 $formatted_name = $camptix->format_name_string( 239 '<span class="first-name">%first%</span> 240 <span class="last-name">%last%</span>', 241 $first_name, 242 $last_name 243 ); 244 245 $email_address = get_post_meta( $attendee->ID, 'tix_email', true ); 246 $avatar_url = get_avatar_url( $email_address, array( 'size' => 600 ) ); 247 248 $ticket = get_post( get_post_meta( $attendee->ID, 'tix_ticket_id', true ) ); 249 $css_classes[] = 'ticket-' . $ticket->post_name; 250 251 $coupon_id = get_post_meta( $attendee->ID, 'tix_coupon_id', true ); 252 if ( $coupon_id ) { 253 $coupon = get_post( $coupon_id ); 254 $css_classes[] = 'coupon-' . $coupon->post_name; 255 } 256 257 $css_classes = implode( ' ', $css_classes ); 258 259 return compact( 'formatted_name', 'email_address', 'avatar_url', 'css_classes' ); 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 ); 260 295 } 261 296
Note: See TracChangeset
for help on using the changeset viewer.