Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mt-support/tribe-ext-tickets-additional-fields
Add fields to your Tickets or RSVPs.
https://github.com/mt-support/tribe-ext-tickets-additional-fields
Last synced: about 2 months ago
JSON representation
Add fields to your Tickets or RSVPs.
- Host: GitHub
- URL: https://github.com/mt-support/tribe-ext-tickets-additional-fields
- Owner: mt-support
- License: gpl-3.0
- Created: 2020-03-20T20:29:31.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-24T14:04:09.000Z (over 1 year ago)
- Last Synced: 2024-04-03T15:32:15.372Z (6 months ago)
- Language: PHP
- Size: 48.8 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license.txt
Awesome Lists containing this project
README
## What and Why?
This is an extension to add additional fields for Tickets and RSVPs. Event Tickets and Event Tickets Plus are required.
## How?
You can add the following code to another plugin or in your theme `functions.php` file:
```php
'text',
'label' => esc_html__( 'Teacher name' ),
'description' => esc_html__( 'Insert the name of the teacher or person hosting.' ),
];$ticket_fields['teacher_email'] = [
'type' => 'email',
'label' => esc_html__( 'Teacher email' ),
'description' => esc_html__( 'Insert the email of the teacher or person hosting.' ),
];$ticket_fields['zoom_link'] = [
'type' => 'url',
'label' => esc_html__( 'Zoom link' ),
'description' => esc_html__( 'Insert the zoom link to share a link of the meeting.' ),
];$ticket_fields['youtube_embed'] = [
'type' => 'textarea',
'label' => esc_html__( 'Youtube Embed' ),
'description' => esc_html__( 'Insert the youtube embed of the video they have access to when they purchase the ticket.' ),
];return $ticket_fields;
}```
This way the additional fields will be added on the ticket box or the RSVP box under the "Additional Fields" section.
On a code basis, there's a template tag called `tribe_ext_tickets_additional_fields_get_meta()` that will allow you to get the value wherever you need it, like this:
```php
// Replace `123` with your ticket ID.
tribe_ext_tickets_additional_fields_get_meta( 123, 'zoom_link' );
```## Printing the fields
You can either use a template tag, or you can also use the the `[tribe_tickets_additional_field]` shortcode if you also have the [Event Tickets Shortcodes Extension](https://theeventscalendar.com/extensions/event-tickets-shortcodes/).
### Using the template tag
You can use the function `tribe_ext_tickets_additional_fields_get_meta()` in your code, like this:
```php
// Replace `123` with your ticket ID.
tribe_ext_tickets_additional_fields_get_meta( 123, 'zoom_link' );
```### Using the Shortcode
As mentioned above. For this to work you'll need [Event Tickets Plus](https://theeventscalendar.com/products/wordpress-event-tickets/) installed and active on your site.
The shortcode has two required parameters, the `ticket_id` and the `field`. The `ticket_id` parameter is the ID of the ticket (post or page. The `field` parameter is the ID you use when defining the field. In the previous example: `zoom_link`, `teacher_name`, `teacher_email` and `youtube_embed`.
*Example usage:*
```
[tribe_tickets_additional_field ticket_id="123" field="zoom_link"]
```_Where 123 is the ID of the ticket_
Finally, if by any chance you want to modify the output of the shortcode you can hook into the `tribe_tickets_additional_field_shortcode_html` filter, which parameters are the `$html`, `$ticket_id` and `$field`.
```php
add_filter( 'tribe_tickets_additional_field_shortcode_html', 'my_custom_additional_field_shortcode_printing', 10, 3 );function my_custom_additional_field_shortcode_printing( $html, $ticket_id, $field ) {
if ( 'zoom_link' === $field ) {
$html = 'I do not want to print any zoom link!';
}if ( 123 === $ticket_id ) {
$html = 'I do not want to print any field for the ticket 123';
}return $html;
}
```## Supported fields
* `text` - Text.
* `textarea` - Textarea.
* `url` - URL (when being printed for the shortcode will add the HTML for the link).
* `email` - Email (when being printed for the shortcode will add the HTML for the email link).