Version Description
Download this release
Release Info
Developer | bordoni |
Plugin | Event Tickets |
Version | 4.5 |
Comparing to | |
See all releases |
Code changes from version 4.4.10 to 4.5
- common/lang/tribe-common.pot +2 -2
- common/readme.txt +5 -0
- common/src/Tribe/Main.php +1 -1
- common/src/Tribe/Meta/Chunker.php +133 -27
- common/src/resources/css/tribe-ui.css +36 -0
- common/src/resources/css/tribe-ui.min.css +1 -0
- common/src/resources/images/spirit-animal.png +0 -0
- common/src/resources/postcss/tribe-ui.pcss +29 -0
- common/tribe-common.php +1 -1
- event-tickets.php +1 -1
- lang/event-tickets-cs_CZ.po +95 -66
- lang/event-tickets-de_DE.po +93 -66
- lang/event-tickets-nl_NL.po +93 -66
- lang/event-tickets.pot +96 -69
- readme.txt +12 -1
- src/Tribe/Data_API.php +475 -0
- src/Tribe/Main.php +12 -5
- src/Tribe/RSVP.php +172 -67
- src/Tribe/Ticket_Object.php +3 -0
- src/Tribe/Tickets.php +176 -6
- src/resources/css/rsvp.css +93 -100
- src/resources/css/rsvp.min.css +1 -1
- src/resources/js/frontend-ticket-form.js +10 -0
- src/resources/js/frontend-ticket-form.min.js +1 -1
- src/resources/postcss/rsvp.pcss +109 -102
- src/template-tags/tickets.php +197 -4
- src/views/tickets/email.php +2 -2
- src/views/tickets/rsvp.php +70 -39
common/lang/tribe-common.pot
CHANGED
@@ -4,11 +4,11 @@ msgid ""
|
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Tribe Common 4.5.5\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
-
"POT-Creation-Date: 2017-06-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2017-06-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
4 |
msgstr ""
|
5 |
"Project-Id-Version: Tribe Common 4.5.5\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
+
"POT-Creation-Date: 2017-06-15 15:13:57+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-06-15 15:13\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
common/readme.txt
CHANGED
@@ -1 +1,6 @@
|
|
1 |
=== Tribe Common ===
|
|
|
|
|
|
|
|
|
|
1 |
=== Tribe Common ===
|
2 |
+
|
3 |
+
= [4.5.6] 2017-06-22 =
|
4 |
+
|
5 |
+
* Fix - Resolved issue where the Meta Chunker attempted to inappropriately chunk meta for post post_types [80857]
|
6 |
+
* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted [tribe-common]
|
common/src/Tribe/Main.php
CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
|
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
-
const VERSION = '4.5.
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
+
const VERSION = '4.5.6';
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
common/src/Tribe/Meta/Chunker.php
CHANGED
@@ -34,6 +34,11 @@
|
|
34 |
* or filter the `tribe_meta_chunker_post_types` filter.
|
35 |
*/
|
36 |
class Tribe__Meta__Chunker {
|
|
|
|
|
|
|
|
|
|
|
37 |
/**
|
38 |
* @var string
|
39 |
*/
|
@@ -44,6 +49,12 @@ class Tribe__Meta__Chunker {
|
|
44 |
*/
|
45 |
protected $chunks_cache = null;
|
46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
/**
|
48 |
* @var string The separator that's used to mark the start of each chunk.
|
49 |
*/
|
@@ -52,7 +63,7 @@ class Tribe__Meta__Chunker {
|
|
52 |
/**
|
53 |
* @var array The post types supported by the Chunker.
|
54 |
*/
|
55 |
-
protected $post_types = array(
|
56 |
|
57 |
/**
|
58 |
* @var int The filter priority at which Chunker will operate on meta CRUD operations.
|
@@ -87,7 +98,7 @@ class Tribe__Meta__Chunker {
|
|
87 |
add_filter( 'update_post_metadata', array( $this, 'filter_update_metadata' ), $this->filter_priority, 4 );
|
88 |
add_filter( 'delete_post_metadata', array( $this, 'filter_delete_metadata' ), $this->filter_priority, 3 );
|
89 |
add_filter( 'add_post_metadata', array( $this, 'filter_add_metadata' ), $this->filter_priority, 4 );
|
90 |
-
add_filter( 'get_post_metadata', array( $this, 'filter_get_metadata' ), $this->filter_priority,
|
91 |
add_action( 'deleted_post', array( $this, 'remove_post_entry' ) );
|
92 |
}
|
93 |
|
@@ -103,7 +114,8 @@ class Tribe__Meta__Chunker {
|
|
103 |
return;
|
104 |
}
|
105 |
|
106 |
-
$this->chunks_cache
|
|
|
107 |
|
108 |
$chunked_keys = get_option( $this->chunked_keys_option_name );
|
109 |
|
@@ -115,6 +127,7 @@ class Tribe__Meta__Chunker {
|
|
115 |
if ( ! is_array( $keys ) || empty( $keys ) ) {
|
116 |
continue;
|
117 |
}
|
|
|
118 |
foreach ( $keys as $key ) {
|
119 |
$this->chunks_cache[ $this->get_key( $post_id, $key ) ] = null;
|
120 |
}
|
@@ -181,6 +194,8 @@ class Tribe__Meta__Chunker {
|
|
181 |
$this->chunks_cache[ $key ] = null;
|
182 |
}
|
183 |
|
|
|
|
|
184 |
$option = (array) get_option( $this->chunked_keys_option_name );
|
185 |
|
186 |
if ( ! isset( $option[ $post_id ] ) ) {
|
@@ -238,8 +253,26 @@ class Tribe__Meta__Chunker {
|
|
238 |
return $check;
|
239 |
}
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
$this->delete_chunks( $object_id, $meta_key );
|
242 |
$this->remove_checksum_for( $object_id, $meta_key );
|
|
|
243 |
|
244 |
if ( $this->should_be_chunked( $object_id, $meta_key, $meta_value ) ) {
|
245 |
$this->insert_chunks( $object_id, $meta_key );
|
@@ -266,9 +299,20 @@ class Tribe__Meta__Chunker {
|
|
266 |
protected function applies( $object_id, $meta_key ) {
|
267 |
$applies = ! $this->is_chunker_logic_meta_key( $meta_key )
|
268 |
&& $this->is_supported_post_type( $object_id )
|
269 |
-
&&
|
270 |
|
271 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
272 |
}
|
273 |
|
274 |
/**
|
@@ -285,17 +329,20 @@ class Tribe__Meta__Chunker {
|
|
285 |
/**
|
286 |
* Whether a post ID and meta key couple is registered as chunkable or not.
|
287 |
*
|
|
|
|
|
|
|
288 |
* @param int $post_id
|
289 |
* @param string $meta_key
|
290 |
*
|
291 |
* @return bool
|
292 |
*/
|
293 |
-
public function is_chunkable( $post_id, $meta_key ) {
|
294 |
-
$key = $this->get_key( $post_id, $meta_key );
|
295 |
-
|
296 |
$this->prime_chunks_cache();
|
297 |
|
298 |
-
return
|
|
|
|
|
299 |
}
|
300 |
|
301 |
/**
|
@@ -612,12 +659,29 @@ class Tribe__Meta__Chunker {
|
|
612 |
return $check;
|
613 |
}
|
614 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
615 |
$has_chunked_meta = $this->is_chunked( $object_id, $meta_key );
|
616 |
if ( ! $has_chunked_meta ) {
|
617 |
return $check;
|
618 |
}
|
619 |
$this->cache_delete( $object_id, $meta_key );
|
620 |
$this->delete_chunks( $object_id, $meta_key );
|
|
|
621 |
|
622 |
return true;
|
623 |
}
|
@@ -670,12 +734,11 @@ class Tribe__Meta__Chunker {
|
|
670 |
* Unhooks the Chunker from the metadata operations.
|
671 |
*/
|
672 |
public function unhook() {
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
}
|
679 |
}
|
680 |
|
681 |
/**
|
@@ -690,27 +753,46 @@ class Tribe__Meta__Chunker {
|
|
690 |
*
|
691 |
* @see get_metadata()
|
692 |
*/
|
693 |
-
public function filter_get_metadata( $check, $object_id, $meta_key ) {
|
694 |
if ( ! $this->applies( $object_id, $meta_key ) ) {
|
695 |
return $check;
|
696 |
}
|
697 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
698 |
// getting all the meta
|
699 |
if ( empty( $meta_key ) ) {
|
700 |
-
return $
|
701 |
}
|
702 |
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
712 |
|
713 |
-
|
|
|
|
|
|
|
|
|
714 |
}
|
715 |
|
716 |
/**
|
@@ -777,6 +859,21 @@ class Tribe__Meta__Chunker {
|
|
777 |
* @return array|null|object
|
778 |
*/
|
779 |
protected function get_all_meta( $object_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
780 |
/** @var wpdb $wpdb */
|
781 |
global $wpdb;
|
782 |
$query = $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $object_id );
|
@@ -823,6 +920,15 @@ class Tribe__Meta__Chunker {
|
|
823 |
return $this->chunked_keys_option_name;
|
824 |
}
|
825 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
826 |
/**
|
827 |
* Asserts that a meta key is not a chunk meta key.
|
828 |
*
|
@@ -854,4 +960,4 @@ class Tribe__Meta__Chunker {
|
|
854 |
delete_option( $this->chunked_keys_option_name );
|
855 |
}
|
856 |
}
|
857 |
-
}
|
34 |
* or filter the `tribe_meta_chunker_post_types` filter.
|
35 |
*/
|
36 |
class Tribe__Meta__Chunker {
|
37 |
+
/**
|
38 |
+
* @var string The key used to cache the class results in the WordPress object cache.
|
39 |
+
*/
|
40 |
+
protected $cache_group = 'post_meta';
|
41 |
+
|
42 |
/**
|
43 |
* @var string
|
44 |
*/
|
49 |
*/
|
50 |
protected $chunks_cache = null;
|
51 |
|
52 |
+
/**
|
53 |
+
* @var array The cache that will store the IDs of the posts that have at least one meta key registered
|
54 |
+
* for chunking.
|
55 |
+
*/
|
56 |
+
protected $post_ids_cache = null;
|
57 |
+
|
58 |
/**
|
59 |
* @var string The separator that's used to mark the start of each chunk.
|
60 |
*/
|
63 |
/**
|
64 |
* @var array The post types supported by the Chunker.
|
65 |
*/
|
66 |
+
protected $post_types = array();
|
67 |
|
68 |
/**
|
69 |
* @var int The filter priority at which Chunker will operate on meta CRUD operations.
|
98 |
add_filter( 'update_post_metadata', array( $this, 'filter_update_metadata' ), $this->filter_priority, 4 );
|
99 |
add_filter( 'delete_post_metadata', array( $this, 'filter_delete_metadata' ), $this->filter_priority, 3 );
|
100 |
add_filter( 'add_post_metadata', array( $this, 'filter_add_metadata' ), $this->filter_priority, 4 );
|
101 |
+
add_filter( 'get_post_metadata', array( $this, 'filter_get_metadata' ), $this->filter_priority, 4 );
|
102 |
add_action( 'deleted_post', array( $this, 'remove_post_entry' ) );
|
103 |
}
|
104 |
|
114 |
return;
|
115 |
}
|
116 |
|
117 |
+
$this->chunks_cache = array();
|
118 |
+
$this->post_ids_cache = array();
|
119 |
|
120 |
$chunked_keys = get_option( $this->chunked_keys_option_name );
|
121 |
|
127 |
if ( ! is_array( $keys ) || empty( $keys ) ) {
|
128 |
continue;
|
129 |
}
|
130 |
+
$this->post_ids_cache[] = $post_id;
|
131 |
foreach ( $keys as $key ) {
|
132 |
$this->chunks_cache[ $this->get_key( $post_id, $key ) ] = null;
|
133 |
}
|
194 |
$this->chunks_cache[ $key ] = null;
|
195 |
}
|
196 |
|
197 |
+
$this->post_ids_cache[] = $post_id;
|
198 |
+
|
199 |
$option = (array) get_option( $this->chunked_keys_option_name );
|
200 |
|
201 |
if ( ! isset( $option[ $post_id ] ) ) {
|
253 |
return $check;
|
254 |
}
|
255 |
|
256 |
+
/**
|
257 |
+
* Filters the chunked meta update operation.
|
258 |
+
*
|
259 |
+
* Returning a non null value here will make the function return that value immediately.
|
260 |
+
*
|
261 |
+
* @param mixed $updated
|
262 |
+
* @param int $object_id The post ID
|
263 |
+
* @param string $meta_key
|
264 |
+
* @param mixed $meta_value
|
265 |
+
*
|
266 |
+
* @since 4.5.6
|
267 |
+
*/
|
268 |
+
$updated = apply_filters( 'tribe_meta_chunker_update_meta', null, $object_id, $meta_key, $meta_value );
|
269 |
+
if ( null !== $updated ) {
|
270 |
+
return $updated;
|
271 |
+
}
|
272 |
+
|
273 |
$this->delete_chunks( $object_id, $meta_key );
|
274 |
$this->remove_checksum_for( $object_id, $meta_key );
|
275 |
+
wp_cache_delete( $object_id, $this->cache_group );
|
276 |
|
277 |
if ( $this->should_be_chunked( $object_id, $meta_key, $meta_value ) ) {
|
278 |
$this->insert_chunks( $object_id, $meta_key );
|
299 |
protected function applies( $object_id, $meta_key ) {
|
300 |
$applies = ! $this->is_chunker_logic_meta_key( $meta_key )
|
301 |
&& $this->is_supported_post_type( $object_id )
|
302 |
+
&& $this->is_chunkable( $object_id, $meta_key );
|
303 |
|
304 |
+
/**
|
305 |
+
* Filters whether the meta chunker will apply to a post ID and meta key or not.
|
306 |
+
*
|
307 |
+
* The `$meta_key` parameter might be empty.
|
308 |
+
*
|
309 |
+
* @param bool $applies
|
310 |
+
* @param int $object_id
|
311 |
+
* @param string $meta_key
|
312 |
+
*
|
313 |
+
* @since 4.5.6
|
314 |
+
*/
|
315 |
+
return apply_filters( 'tribe_meta_chunker_applies', $applies, $object_id, $meta_key );
|
316 |
}
|
317 |
|
318 |
/**
|
329 |
/**
|
330 |
* Whether a post ID and meta key couple is registered as chunkable or not.
|
331 |
*
|
332 |
+
* If no meta key is passed then the function will check if there is at least
|
333 |
+
* one meta key registered for chunking for the specified post ID.
|
334 |
+
*
|
335 |
* @param int $post_id
|
336 |
* @param string $meta_key
|
337 |
*
|
338 |
* @return bool
|
339 |
*/
|
340 |
+
public function is_chunkable( $post_id, $meta_key = null ) {
|
|
|
|
|
341 |
$this->prime_chunks_cache();
|
342 |
|
343 |
+
return ! empty( $meta_key )
|
344 |
+
? array_key_exists( $this->get_key( $post_id, $meta_key ), $this->chunks_cache )
|
345 |
+
: in_array( $post_id, $this->post_ids_cache );
|
346 |
}
|
347 |
|
348 |
/**
|
659 |
return $check;
|
660 |
}
|
661 |
|
662 |
+
/**
|
663 |
+
* Filters the value returned when deleting a specific meta for a post.
|
664 |
+
*
|
665 |
+
* Returning a non null value here will make the function return that value immediately.
|
666 |
+
*
|
667 |
+
* @param mixed $deleted
|
668 |
+
* @param int $object_id The post ID
|
669 |
+
* @param string $meta_key The requested meta key
|
670 |
+
*
|
671 |
+
* @since 4.5.6
|
672 |
+
*/
|
673 |
+
$deleted = apply_filters( 'tribe_meta_chunker_delete_meta', null, $object_id, $meta_key );
|
674 |
+
if ( null !== $deleted ) {
|
675 |
+
return $deleted;
|
676 |
+
}
|
677 |
+
|
678 |
$has_chunked_meta = $this->is_chunked( $object_id, $meta_key );
|
679 |
if ( ! $has_chunked_meta ) {
|
680 |
return $check;
|
681 |
}
|
682 |
$this->cache_delete( $object_id, $meta_key );
|
683 |
$this->delete_chunks( $object_id, $meta_key );
|
684 |
+
wp_cache_delete( $object_id, $this->cache_group );
|
685 |
|
686 |
return true;
|
687 |
}
|
734 |
* Unhooks the Chunker from the metadata operations.
|
735 |
*/
|
736 |
public function unhook() {
|
737 |
+
remove_filter( 'update_post_metadata', array( $this, 'filter_update_metadata' ), $this->filter_priority );
|
738 |
+
remove_filter( 'delete_post_metadata', array( $this, 'filter_delete_metadata' ), $this->filter_priority );
|
739 |
+
remove_filter( 'add_post_metadata', array( $this, 'filter_add_metadata' ), $this->filter_priority );
|
740 |
+
remove_filter( 'get_post_metadata', array( $this, 'filter_get_metadata' ), $this->filter_priority );
|
741 |
+
remove_action( 'deleted_post', array( $this, 'remove_post_entry' ) );
|
|
|
742 |
}
|
743 |
|
744 |
/**
|
753 |
*
|
754 |
* @see get_metadata()
|
755 |
*/
|
756 |
+
public function filter_get_metadata( $check, $object_id, $meta_key, $single ) {
|
757 |
if ( ! $this->applies( $object_id, $meta_key ) ) {
|
758 |
return $check;
|
759 |
}
|
760 |
|
761 |
+
$all_meta = wp_cache_get( $object_id, $this->cache_group );
|
762 |
+
|
763 |
+
if ( ! $all_meta ) {
|
764 |
+
$all_meta = $this->get_all_meta_for( $object_id );
|
765 |
+
wp_cache_set( $object_id, $all_meta, $this->cache_group );
|
766 |
+
}
|
767 |
+
|
768 |
// getting all the meta
|
769 |
if ( empty( $meta_key ) ) {
|
770 |
+
return $all_meta;
|
771 |
}
|
772 |
|
773 |
+
// why not take $single into account? See condition check on the filter to understand.
|
774 |
+
$meta_value = isset( $all_meta[ $meta_key ] )
|
775 |
+
? array_map( 'maybe_unserialize', $all_meta[ $meta_key ] )
|
776 |
+
: '';
|
777 |
|
778 |
+
/**
|
779 |
+
* Filters the value returned when getting a specific meta for a post.
|
780 |
+
*
|
781 |
+
* Returning a non null value here will make the function return that value immediately.
|
782 |
+
*
|
783 |
+
* @param mixed $meta_value
|
784 |
+
* @param int $object_id The post ID
|
785 |
+
* @param string $meta_key The requested meta key
|
786 |
+
*
|
787 |
+
* @since 4.5.6
|
788 |
+
*/
|
789 |
+
$meta_value = apply_filters( 'tribe_meta_chunker_get_meta', $meta_value, $object_id, $meta_key );
|
790 |
|
791 |
+
if ( $single ) {
|
792 |
+
return (array) $meta_value;
|
793 |
+
} else {
|
794 |
+
return ! empty( $meta_value ) ? $meta_value : '';
|
795 |
+
}
|
796 |
}
|
797 |
|
798 |
/**
|
859 |
* @return array|null|object
|
860 |
*/
|
861 |
protected function get_all_meta( $object_id ) {
|
862 |
+
/**
|
863 |
+
* Filters the value returned when getting all the meta for a post.
|
864 |
+
*
|
865 |
+
* Returning a non null value here will make the function return that value immediately.
|
866 |
+
*
|
867 |
+
* @param mixed $all_meta
|
868 |
+
* @param int $object_id The post ID
|
869 |
+
*
|
870 |
+
* @since 4.5.6
|
871 |
+
*/
|
872 |
+
$all_meta = apply_filters( 'tribe_meta_chunker_get_all_meta', null, $object_id );
|
873 |
+
if ( null !== $all_meta ) {
|
874 |
+
return $all_meta;
|
875 |
+
}
|
876 |
+
|
877 |
/** @var wpdb $wpdb */
|
878 |
global $wpdb;
|
879 |
$query = $wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $object_id );
|
920 |
return $this->chunked_keys_option_name;
|
921 |
}
|
922 |
|
923 |
+
/**
|
924 |
+
* Returns the cache group used by the meta chunker.
|
925 |
+
*
|
926 |
+
* @return string
|
927 |
+
*/
|
928 |
+
public function get_cache_group() {
|
929 |
+
return $this->cache_group;
|
930 |
+
}
|
931 |
+
|
932 |
/**
|
933 |
* Asserts that a meta key is not a chunk meta key.
|
934 |
*
|
960 |
delete_option( $this->chunked_keys_option_name );
|
961 |
}
|
962 |
}
|
963 |
+
}
|
common/src/resources/css/tribe-ui.css
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* This CSS file was auto-generated via PostCSS
|
3 |
+
*
|
4 |
+
* Contributors should avoid editing this file, but instead edit the associated
|
5 |
+
* src/resources/postcss/ file. For more information, check out our engineering
|
6 |
+
* docs on how we handle CSS in our engineering docs.
|
7 |
+
*
|
8 |
+
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
+
*/
|
10 |
+
|
11 |
+
.tribe-button {
|
12 |
+
border: 0;
|
13 |
+
border-radius: 3px;
|
14 |
+
background: #009FF1 -webkit-linear-gradient( top, #009FF1, #0080DB );
|
15 |
+
background: #009FF1 linear-gradient( to bottom, #009FF1, #0080DB );
|
16 |
+
cursor: pointer;
|
17 |
+
color: #fff;
|
18 |
+
display: inline-block;
|
19 |
+
font-size: 14px;
|
20 |
+
font-weight: 400;
|
21 |
+
font-family: sans-serif;
|
22 |
+
letter-spacing: 1px;
|
23 |
+
line-height: 1;
|
24 |
+
height: auto;
|
25 |
+
padding: 10px;
|
26 |
+
text-align: center;
|
27 |
+
-webkit-transition: all .15s ease-in;
|
28 |
+
transition: all .15s ease-in;
|
29 |
+
-webkit-font-smoothing: subpixel-antialiased;
|
30 |
+
}
|
31 |
+
|
32 |
+
.tribe-button:hover,
|
33 |
+
.tribe-button:active,
|
34 |
+
.tribe-button:focus {
|
35 |
+
background: #0080DB;
|
36 |
+
}
|
common/src/resources/css/tribe-ui.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.tribe-button{border:0;border-radius:3px;background:#009ff1 -webkit-linear-gradient(top,#009ff1,#0080db);background:#009ff1 linear-gradient(180deg,#009ff1,#0080db);cursor:pointer;color:#fff;display:inline-block;font-size:14px;font-weight:400;font-family:sans-serif;letter-spacing:1px;line-height:1;height:auto;padding:10px;text-align:center;-webkit-transition:all .15s ease-in;transition:all .15s ease-in;-webkit-font-smoothing:subpixel-antialiased}.tribe-button:active,.tribe-button:focus,.tribe-button:hover{background:#0080db}
|
common/src/resources/images/spirit-animal.png
CHANGED
Binary file
|
common/src/resources/postcss/tribe-ui.pcss
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
:root {
|
2 |
+
--button-light-color: #009FF1;
|
3 |
+
--button-dark-color: #0080DB;
|
4 |
+
}
|
5 |
+
|
6 |
+
.tribe-button {
|
7 |
+
border: 0;
|
8 |
+
border-radius: 3px;
|
9 |
+
background: var(--button-light-color) linear-gradient( to bottom, var(--button-light-color), var(--button-dark-color) );
|
10 |
+
cursor: pointer;
|
11 |
+
color: #fff;
|
12 |
+
display: inline-block;
|
13 |
+
font-size: 14px;
|
14 |
+
font-weight: 400;
|
15 |
+
font-family: sans-serif;
|
16 |
+
letter-spacing: 1px;
|
17 |
+
line-height: 1;
|
18 |
+
height: auto;
|
19 |
+
padding: 10px;
|
20 |
+
text-align: center;
|
21 |
+
transition: all .15s ease-in;
|
22 |
+
-webkit-font-smoothing: subpixel-antialiased;
|
23 |
+
|
24 |
+
&:hover,
|
25 |
+
&:active,
|
26 |
+
&:focus {
|
27 |
+
background: var(--button-dark-color);
|
28 |
+
}
|
29 |
+
}
|
common/tribe-common.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Description: An event settings framework for managing shared options
|
4 |
-
Version: 4.5.
|
5 |
Author: Modern Tribe, Inc.
|
6 |
Author URI: http://m.tri.be/1x
|
7 |
Text Domain: tribe-common
|
1 |
<?php
|
2 |
/*
|
3 |
Description: An event settings framework for managing shared options
|
4 |
+
Version: 4.5.6
|
5 |
Author: Modern Tribe, Inc.
|
6 |
Author URI: http://m.tri.be/1x
|
7 |
Text Domain: tribe-common
|
event-tickets.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Event Tickets
|
4 |
Description: Event Tickets allows your guests to RSVP from any post, page, or event.
|
5 |
-
Version: 4.
|
6 |
Author: Modern Tribe, Inc.
|
7 |
Author URI: http://m.tri.be/28
|
8 |
License: GPLv2 or later
|
2 |
/*
|
3 |
Plugin Name: Event Tickets
|
4 |
Description: Event Tickets allows your guests to RSVP from any post, page, or event.
|
5 |
+
Version: 4.5
|
6 |
Author: Modern Tribe, Inc.
|
7 |
Author URI: http://m.tri.be/28
|
8 |
License: GPLv2 or later
|
lang/event-tickets-cs_CZ.po
CHANGED
@@ -10,16 +10,45 @@ msgstr ""
|
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
-
#: src/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
15 |
msgstr ""
|
16 |
|
17 |
-
#: src/template-tags/tickets.php:
|
18 |
msgctxt "ticket stock message (remaining stock)"
|
19 |
msgid "%1$d Remaining"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: src/template-tags/tickets.php:
|
23 |
msgctxt "ticket stock message (pending stock)"
|
24 |
msgid "%1$d Awaiting Review"
|
25 |
msgstr ""
|
@@ -104,20 +133,20 @@ msgstr ""
|
|
104 |
msgid "Location of Tickets form"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: src/template-tags/tickets.php:
|
108 |
msgid "Sold"
|
109 |
msgstr ""
|
110 |
|
111 |
-
#: src/template-tags/tickets.php:
|
112 |
msgctxt "separate going and remain RSVPs"
|
113 |
msgid "RSVP'd Going"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: src/template-tags/tickets.php:
|
117 |
msgid "%s %d"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/template-tags/tickets.php:
|
121 |
msgctxt "ticket global stock message (remaining stock)"
|
122 |
msgid "%1$d Remaining of the global stock"
|
123 |
msgstr ""
|
@@ -163,12 +192,12 @@ msgctxt "order status label"
|
|
163 |
msgid "RSVP: "
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: src/views/tickets/rsvp.php:
|
167 |
msgctxt "form heading"
|
168 |
msgid "RSVP"
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: src/views/tickets/rsvp.php:
|
172 |
msgctxt "order status label"
|
173 |
msgid "RSVP"
|
174 |
msgstr ""
|
@@ -442,11 +471,11 @@ msgctxt "post type label"
|
|
442 |
msgid "RSVPs"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: src/Tribe/Main.php:
|
446 |
msgid "Welcome to Event Tickets"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: src/Tribe/Main.php:
|
450 |
msgctxt "button text"
|
451 |
msgid "RSVP"
|
452 |
msgstr ""
|
@@ -470,16 +499,16 @@ msgctxt "attendee summary"
|
|
470 |
msgid "Not Going:"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: src/Tribe/RSVP.php:
|
474 |
msgctxt "ticket provider"
|
475 |
msgid "RSVP"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: src/Tribe/RSVP.php:
|
479 |
msgid "RSVP Tickets"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: src/Tribe/RSVP.php:
|
483 |
msgid "RSVP Ticket"
|
484 |
msgstr ""
|
485 |
|
@@ -555,11 +584,11 @@ msgstr ""
|
|
555 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: src/template-tags/tickets.php:
|
559 |
msgid "global inventory"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: src/template-tags/tickets.php:
|
563 |
msgctxt "ticket stock message (cancelled stock)"
|
564 |
msgid "%1$d Cancelled"
|
565 |
msgstr ""
|
@@ -626,19 +655,19 @@ msgstr "Zobrazit (%s)"
|
|
626 |
msgid "Update %s"
|
627 |
msgstr "Aktualizovat"
|
628 |
|
629 |
-
#: src/views/tickets/rsvp.php:
|
630 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: src/views/tickets/rsvp.php:
|
634 |
msgid "Send RSVP confirmation to:"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: src/views/tickets/rsvp.php:
|
638 |
msgid "Don't list me on the public attendee list"
|
639 |
msgstr "Neuvádějte mě na veřejném seznamu účastníků"
|
640 |
|
641 |
-
#: src/views/tickets/rsvp.php:
|
642 |
msgid "Login to RSVP"
|
643 |
msgstr ""
|
644 |
|
@@ -646,7 +675,7 @@ msgstr ""
|
|
646 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: src/Tribe/Main.php:
|
650 |
msgid "Buy"
|
651 |
msgstr ""
|
652 |
|
@@ -658,35 +687,35 @@ msgstr ""
|
|
658 |
msgid "Please enter in without thousand separators and currency symbols."
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: src/Tribe/RSVP.php:
|
662 |
msgid "You confirmed you will not be attending %s"
|
663 |
msgstr ""
|
664 |
|
665 |
-
#: src/Tribe/Tickets.php:
|
666 |
msgid "Use global stock"
|
667 |
msgstr ""
|
668 |
|
669 |
-
#: src/Tribe/Tickets.php:
|
670 |
msgid "Use global stock but cap sales"
|
671 |
msgstr ""
|
672 |
|
673 |
-
#: src/Tribe/Tickets.php:
|
674 |
msgid "Independent (do not use global stock)"
|
675 |
msgstr ""
|
676 |
|
677 |
-
#: src/Tribe/Tickets.php:
|
678 |
msgid "Tickets are not available as this %s has passed."
|
679 |
msgstr ""
|
680 |
|
681 |
-
#: src/Tribe/Tickets.php:
|
682 |
msgid "Tickets are not yet available."
|
683 |
msgstr ""
|
684 |
|
685 |
-
#: src/Tribe/Tickets.php:
|
686 |
msgid "Tickets are no longer available."
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: src/Tribe/Tickets.php:
|
690 |
msgid "There are no tickets available at this time."
|
691 |
msgstr ""
|
692 |
|
@@ -777,39 +806,39 @@ msgstr ""
|
|
777 |
msgid "Free"
|
778 |
msgstr "Zdarma"
|
779 |
|
780 |
-
#: src/Tribe/Main.php:
|
781 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: src/Tribe/RSVP.php:
|
785 |
msgid "You can't RSVP more than the total remaining tickets."
|
786 |
msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
|
787 |
|
788 |
-
#: src/Tribe/RSVP.php:
|
789 |
msgid "Return to the %1$sAttendees Report%2$s."
|
790 |
msgstr "Zpět na %1$spřehled účastníků%2$s."
|
791 |
|
792 |
-
#: src/Tribe/RSVP.php:
|
793 |
msgid "Post updated. %1$s"
|
794 |
msgstr "Příspěvek byl aktualizován. %1$s"
|
795 |
|
796 |
-
#: src/Tribe/RSVP.php:
|
797 |
msgid "Post published. %1$s"
|
798 |
msgstr "Příspěvek byl publikován. %1$s"
|
799 |
|
800 |
-
#: src/Tribe/RSVP.php:
|
801 |
msgid "Post submitted."
|
802 |
msgstr "Příspěvek byl odeslán ke schválení."
|
803 |
|
804 |
-
#: src/Tribe/RSVP.php:
|
805 |
msgid "Post scheduled."
|
806 |
msgstr "Příspěvek bude automaticky publikován."
|
807 |
|
808 |
-
#: src/Tribe/RSVP.php:
|
809 |
msgid "Post draft updated."
|
810 |
msgstr "Koncept příspěvku byl uložen."
|
811 |
|
812 |
-
#: src/Tribe/Tickets.php:
|
813 |
msgid "Editing the ticket price is currently disallowed."
|
814 |
msgstr "Upravovaní ceny vstupenky není aktuálně povoleno."
|
815 |
|
@@ -861,59 +890,59 @@ msgstr "Zrušit"
|
|
861 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: src/Tribe/Main.php:
|
865 |
msgid "Support for Event Tickets"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: src/Tribe/Main.php:
|
869 |
msgid "Settings overview"
|
870 |
msgstr "Přehled nastavení"
|
871 |
|
872 |
-
#: src/Tribe/Main.php:
|
873 |
msgid "Features overview"
|
874 |
msgstr "Přehled funkcí"
|
875 |
|
876 |
-
#: src/Tribe/Main.php:
|
877 |
msgid "Troubleshooting common problems"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: src/Tribe/Main.php:
|
881 |
msgid "Customizing Event Tickets"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: src/Tribe/Main.php:
|
885 |
msgid "New User Primer"
|
886 |
msgstr ""
|
887 |
|
888 |
-
#: src/Tribe/Main.php:
|
889 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: src/Tribe/Main.php:
|
893 |
msgid "open-source forum on WordPress.org"
|
894 |
msgstr ""
|
895 |
|
896 |
-
#: src/Tribe/Main.php:
|
897 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: src/Tribe/Main.php:
|
901 |
msgid "premium support on our website"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: src/Tribe/Main.php:
|
905 |
msgid "Events Tickets Plus"
|
906 |
msgstr "Events Tickets Plus"
|
907 |
|
908 |
-
#: src/Tribe/Main.php:
|
909 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: src/Tribe/Main.php:
|
913 |
msgid "post a thread"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: src/Tribe/Main.php:
|
917 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
918 |
msgstr ""
|
919 |
|
@@ -951,7 +980,7 @@ msgid "Print"
|
|
951 |
msgstr "Tisk"
|
952 |
|
953 |
#: src/Tribe/Attendees_Table.php:490
|
954 |
-
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:
|
955 |
msgid "Email"
|
956 |
msgstr "Email"
|
957 |
|
@@ -975,32 +1004,32 @@ msgstr "Obrázek v záhlaví vstupenky"
|
|
975 |
msgid "Set as ticket header"
|
976 |
msgstr "Použít jako obrázek v záhlaví vstupenky"
|
977 |
|
978 |
-
#: src/Tribe/RSVP.php:
|
979 |
msgctxt "Attendee number"
|
980 |
msgid "Attendee %1$s"
|
981 |
msgstr "Účastník %1$s"
|
982 |
|
983 |
-
#: src/Tribe/RSVP.php:
|
984 |
msgid "Your tickets from %s"
|
985 |
msgstr "Vaše vstupenky z webu %s"
|
986 |
|
987 |
-
#: src/Tribe/RSVP.php:
|
988 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
989 |
msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
|
990 |
|
991 |
-
#: src/Tribe/RSVP.php:
|
992 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
993 |
msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
|
994 |
|
995 |
-
#: src/Tribe/RSVP.php:
|
996 |
msgid "(deleted)"
|
997 |
msgstr "(smazáno)"
|
998 |
|
999 |
-
#: src/Tribe/Tickets.php:
|
1000 |
msgid "Your ticket has been saved."
|
1001 |
msgstr "Vaše vstupenka byla uložena."
|
1002 |
|
1003 |
-
#: src/Tribe/Tickets.php:
|
1004 |
msgid "Your ticket has been deleted."
|
1005 |
msgstr "Vaše vstupenka byla smazána."
|
1006 |
|
@@ -1189,25 +1218,25 @@ msgstr "Kupující"
|
|
1189 |
msgid "RSVP"
|
1190 |
msgstr "Potvrzení účasti"
|
1191 |
|
1192 |
-
#: src/views/tickets/rsvp.php:
|
1193 |
msgid "%1$s out of %2$s available"
|
1194 |
msgstr "%1$s z celkem %2$s k dispozici"
|
1195 |
|
1196 |
-
#: src/views/tickets/rsvp.php:
|
1197 |
msgid "Out of stock!"
|
1198 |
msgstr "Není skladem!"
|
1199 |
|
1200 |
-
#: src/views/tickets/rsvp.php:
|
1201 |
msgid "Full Name"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
-
#: src/views/tickets/rsvp.php:
|
1205 |
msgid "Confirm RSVP"
|
1206 |
msgstr "Potvrdit účast"
|
1207 |
|
1208 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.
|
1209 |
#. Plugin Name of the plugin/theme
|
1210 |
-
#: src/Tribe/Main.php:
|
1211 |
msgid "Event Tickets"
|
1212 |
msgstr "Event Tickets"
|
1213 |
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
+
#: src/template-tags/tickets.php:185
|
14 |
+
msgctxt "list view stock sold out"
|
15 |
+
msgid "Sold out"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/template-tags/tickets.php:197
|
19 |
+
msgid "%s spot left"
|
20 |
+
msgid_plural "%s spots left"
|
21 |
+
msgstr[0] ""
|
22 |
+
msgstr[1] ""
|
23 |
+
msgstr[2] ""
|
24 |
+
|
25 |
+
#: src/template-tags/tickets.php:199
|
26 |
+
msgid "%s ticket left"
|
27 |
+
msgid_plural "%s tickets left"
|
28 |
+
msgstr[0] ""
|
29 |
+
msgstr[1] ""
|
30 |
+
msgstr[2] ""
|
31 |
+
|
32 |
+
#: src/template-tags/tickets.php:208
|
33 |
+
msgctxt "list view rsvp now ticket button"
|
34 |
+
msgid "RSVP Now!"
|
35 |
+
msgstr ""
|
36 |
+
|
37 |
+
#: src/template-tags/tickets.php:211
|
38 |
+
msgctxt "list view buy now ticket button"
|
39 |
+
msgid "Buy Now!"
|
40 |
+
msgstr ""
|
41 |
+
|
42 |
+
#: src/views/tickets/rsvp.php:189
|
43 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: src/template-tags/tickets.php:386
|
47 |
msgctxt "ticket stock message (remaining stock)"
|
48 |
msgid "%1$d Remaining"
|
49 |
msgstr ""
|
50 |
|
51 |
+
#: src/template-tags/tickets.php:389
|
52 |
msgctxt "ticket stock message (pending stock)"
|
53 |
msgid "%1$d Awaiting Review"
|
54 |
msgstr ""
|
133 |
msgid "Location of Tickets form"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: src/template-tags/tickets.php:371
|
137 |
msgid "Sold"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: src/template-tags/tickets.php:373
|
141 |
msgctxt "separate going and remain RSVPs"
|
142 |
msgid "RSVP'd Going"
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: src/template-tags/tickets.php:378
|
146 |
msgid "%s %d"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: src/template-tags/tickets.php:384
|
150 |
msgctxt "ticket global stock message (remaining stock)"
|
151 |
msgid "%1$d Remaining of the global stock"
|
152 |
msgstr ""
|
192 |
msgid "RSVP: "
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: src/views/tickets/rsvp.php:32
|
196 |
msgctxt "form heading"
|
197 |
msgid "RSVP"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: src/views/tickets/rsvp.php:143
|
201 |
msgctxt "order status label"
|
202 |
msgid "RSVP"
|
203 |
msgstr ""
|
471 |
msgid "RSVPs"
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: src/Tribe/Main.php:596
|
475 |
msgid "Welcome to Event Tickets"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: src/Tribe/Main.php:731
|
479 |
msgctxt "button text"
|
480 |
msgid "RSVP"
|
481 |
msgstr ""
|
499 |
msgid "Not Going:"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: src/Tribe/RSVP.php:163
|
503 |
msgctxt "ticket provider"
|
504 |
msgid "RSVP"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: src/Tribe/RSVP.php:279
|
508 |
msgid "RSVP Tickets"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: src/Tribe/RSVP.php:280
|
512 |
msgid "RSVP Ticket"
|
513 |
msgstr ""
|
514 |
|
584 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: src/template-tags/tickets.php:368
|
588 |
msgid "global inventory"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: src/template-tags/tickets.php:391
|
592 |
msgctxt "ticket stock message (cancelled stock)"
|
593 |
msgid "%1$d Cancelled"
|
594 |
msgstr ""
|
655 |
msgid "Update %s"
|
656 |
msgstr "Aktualizovat"
|
657 |
|
658 |
+
#: src/views/tickets/rsvp.php:50
|
659 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: src/views/tickets/rsvp.php:114
|
663 |
msgid "Send RSVP confirmation to:"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: src/views/tickets/rsvp.php:159
|
667 |
msgid "Don't list me on the public attendee list"
|
668 |
msgstr "Neuvádějte mě na veřejném seznamu účastníků"
|
669 |
|
670 |
+
#: src/views/tickets/rsvp.php:171
|
671 |
msgid "Login to RSVP"
|
672 |
msgstr ""
|
673 |
|
675 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
676 |
msgstr ""
|
677 |
|
678 |
+
#: src/Tribe/Main.php:731
|
679 |
msgid "Buy"
|
680 |
msgstr ""
|
681 |
|
687 |
msgid "Please enter in without thousand separators and currency symbols."
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: src/Tribe/RSVP.php:743
|
691 |
msgid "You confirmed you will not be attending %s"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: src/Tribe/Tickets.php:986
|
695 |
msgid "Use global stock"
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: src/Tribe/Tickets.php:987
|
699 |
msgid "Use global stock but cap sales"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: src/Tribe/Tickets.php:988
|
703 |
msgid "Independent (do not use global stock)"
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: src/Tribe/Tickets.php:1573
|
707 |
msgid "Tickets are not available as this %s has passed."
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: src/Tribe/Tickets.php:1575
|
711 |
msgid "Tickets are not yet available."
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: src/Tribe/Tickets.php:1577
|
715 |
msgid "Tickets are no longer available."
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: src/Tribe/Tickets.php:1579
|
719 |
msgid "There are no tickets available at this time."
|
720 |
msgstr ""
|
721 |
|
806 |
msgid "Free"
|
807 |
msgstr "Zdarma"
|
808 |
|
809 |
+
#: src/Tribe/Main.php:495
|
810 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
811 |
msgstr ""
|
812 |
|
813 |
+
#: src/Tribe/RSVP.php:973
|
814 |
msgid "You can't RSVP more than the total remaining tickets."
|
815 |
msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
|
816 |
|
817 |
+
#: src/Tribe/RSVP.php:1513
|
818 |
msgid "Return to the %1$sAttendees Report%2$s."
|
819 |
msgstr "Zpět na %1$spřehled účastníků%2$s."
|
820 |
|
821 |
+
#: src/Tribe/RSVP.php:1520
|
822 |
msgid "Post updated. %1$s"
|
823 |
msgstr "Příspěvek byl aktualizován. %1$s"
|
824 |
|
825 |
+
#: src/Tribe/RSVP.php:1524
|
826 |
msgid "Post published. %1$s"
|
827 |
msgstr "Příspěvek byl publikován. %1$s"
|
828 |
|
829 |
+
#: src/Tribe/RSVP.php:1527
|
830 |
msgid "Post submitted."
|
831 |
msgstr "Příspěvek byl odeslán ke schválení."
|
832 |
|
833 |
+
#: src/Tribe/RSVP.php:1528
|
834 |
msgid "Post scheduled."
|
835 |
msgstr "Příspěvek bude automaticky publikován."
|
836 |
|
837 |
+
#: src/Tribe/RSVP.php:1529
|
838 |
msgid "Post draft updated."
|
839 |
msgstr "Koncept příspěvku byl uložen."
|
840 |
|
841 |
+
#: src/Tribe/Tickets.php:701
|
842 |
msgid "Editing the ticket price is currently disallowed."
|
843 |
msgstr "Upravovaní ceny vstupenky není aktuálně povoleno."
|
844 |
|
890 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
891 |
msgstr ""
|
892 |
|
893 |
+
#: src/Tribe/Main.php:441
|
894 |
msgid "Support for Event Tickets"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: src/Tribe/Main.php:443
|
898 |
msgid "Settings overview"
|
899 |
msgstr "Přehled nastavení"
|
900 |
|
901 |
+
#: src/Tribe/Main.php:444
|
902 |
msgid "Features overview"
|
903 |
msgstr "Přehled funkcí"
|
904 |
|
905 |
+
#: src/Tribe/Main.php:445
|
906 |
msgid "Troubleshooting common problems"
|
907 |
msgstr ""
|
908 |
|
909 |
+
#: src/Tribe/Main.php:446
|
910 |
msgid "Customizing Event Tickets"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: src/Tribe/Main.php:463
|
914 |
msgid "New User Primer"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: src/Tribe/Main.php:465
|
918 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: src/Tribe/Main.php:482
|
922 |
msgid "open-source forum on WordPress.org"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: src/Tribe/Main.php:483
|
926 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: src/Tribe/Main.php:485
|
930 |
msgid "premium support on our website"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: src/Tribe/Main.php:486
|
934 |
msgid "Events Tickets Plus"
|
935 |
msgstr "Events Tickets Plus"
|
936 |
|
937 |
+
#: src/Tribe/Main.php:487
|
938 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: src/Tribe/Main.php:489 src/Tribe/Main.php:494
|
942 |
msgid "post a thread"
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: src/Tribe/Main.php:490
|
946 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
947 |
msgstr ""
|
948 |
|
980 |
msgstr "Tisk"
|
981 |
|
982 |
#: src/Tribe/Attendees_Table.php:490
|
983 |
+
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:134
|
984 |
msgid "Email"
|
985 |
msgstr "Email"
|
986 |
|
1004 |
msgid "Set as ticket header"
|
1005 |
msgstr "Použít jako obrázek v záhlaví vstupenky"
|
1006 |
|
1007 |
+
#: src/Tribe/RSVP.php:241
|
1008 |
msgctxt "Attendee number"
|
1009 |
msgid "Attendee %1$s"
|
1010 |
msgstr "Účastník %1$s"
|
1011 |
|
1012 |
+
#: src/Tribe/RSVP.php:712
|
1013 |
msgid "Your tickets from %s"
|
1014 |
msgstr "Vaše vstupenky z webu %s"
|
1015 |
|
1016 |
+
#: src/Tribe/RSVP.php:967
|
1017 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
1018 |
msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
|
1019 |
|
1020 |
+
#: src/Tribe/RSVP.php:978
|
1021 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
1022 |
msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
|
1023 |
|
1024 |
+
#: src/Tribe/RSVP.php:1222
|
1025 |
msgid "(deleted)"
|
1026 |
msgstr "(smazáno)"
|
1027 |
|
1028 |
+
#: src/Tribe/Tickets.php:469
|
1029 |
msgid "Your ticket has been saved."
|
1030 |
msgstr "Vaše vstupenka byla uložena."
|
1031 |
|
1032 |
+
#: src/Tribe/Tickets.php:647
|
1033 |
msgid "Your ticket has been deleted."
|
1034 |
msgstr "Vaše vstupenka byla smazána."
|
1035 |
|
1218 |
msgid "RSVP"
|
1219 |
msgstr "Potvrzení účasti"
|
1220 |
|
1221 |
+
#: src/views/tickets/rsvp.php:84
|
1222 |
msgid "%1$s out of %2$s available"
|
1223 |
msgstr "%1$s z celkem %2$s k dispozici"
|
1224 |
|
1225 |
+
#: src/views/tickets/rsvp.php:88
|
1226 |
msgid "Out of stock!"
|
1227 |
msgstr "Není skladem!"
|
1228 |
|
1229 |
+
#: src/views/tickets/rsvp.php:126
|
1230 |
msgid "Full Name"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
+
#: src/views/tickets/rsvp.php:180
|
1234 |
msgid "Confirm RSVP"
|
1235 |
msgstr "Potvrdit účast"
|
1236 |
|
1237 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.5dev1) #-#-#-#-#
|
1238 |
#. Plugin Name of the plugin/theme
|
1239 |
+
#: src/Tribe/Main.php:509
|
1240 |
msgid "Event Tickets"
|
1241 |
msgstr "Event Tickets"
|
1242 |
|
lang/event-tickets-de_DE.po
CHANGED
@@ -10,16 +10,43 @@ msgstr ""
|
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
-
#: src/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
15 |
msgstr ""
|
16 |
|
17 |
-
#: src/template-tags/tickets.php:
|
18 |
msgctxt "ticket stock message (remaining stock)"
|
19 |
msgid "%1$d Remaining"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: src/template-tags/tickets.php:
|
23 |
msgctxt "ticket stock message (pending stock)"
|
24 |
msgid "%1$d Awaiting Review"
|
25 |
msgstr ""
|
@@ -104,20 +131,20 @@ msgstr ""
|
|
104 |
msgid "Location of Tickets form"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: src/template-tags/tickets.php:
|
108 |
msgid "Sold"
|
109 |
msgstr "Verkauft"
|
110 |
|
111 |
-
#: src/template-tags/tickets.php:
|
112 |
msgctxt "separate going and remain RSVPs"
|
113 |
msgid "RSVP'd Going"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: src/template-tags/tickets.php:
|
117 |
msgid "%s %d"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/template-tags/tickets.php:
|
121 |
msgctxt "ticket global stock message (remaining stock)"
|
122 |
msgid "%1$d Remaining of the global stock"
|
123 |
msgstr ""
|
@@ -161,12 +188,12 @@ msgctxt "order status label"
|
|
161 |
msgid "RSVP: "
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: src/views/tickets/rsvp.php:
|
165 |
msgctxt "form heading"
|
166 |
msgid "RSVP"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: src/views/tickets/rsvp.php:
|
170 |
msgctxt "order status label"
|
171 |
msgid "RSVP"
|
172 |
msgstr ""
|
@@ -438,11 +465,11 @@ msgctxt "post type label"
|
|
438 |
msgid "RSVPs"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: src/Tribe/Main.php:
|
442 |
msgid "Welcome to Event Tickets"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: src/Tribe/Main.php:
|
446 |
msgctxt "button text"
|
447 |
msgid "RSVP"
|
448 |
msgstr ""
|
@@ -466,16 +493,16 @@ msgctxt "attendee summary"
|
|
466 |
msgid "Not Going:"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: src/Tribe/RSVP.php:
|
470 |
msgctxt "ticket provider"
|
471 |
msgid "RSVP"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: src/Tribe/RSVP.php:
|
475 |
msgid "RSVP Tickets"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: src/Tribe/RSVP.php:
|
479 |
msgid "RSVP Ticket"
|
480 |
msgstr ""
|
481 |
|
@@ -551,11 +578,11 @@ msgstr ""
|
|
551 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: src/template-tags/tickets.php:
|
555 |
msgid "global inventory"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: src/template-tags/tickets.php:
|
559 |
msgctxt "ticket stock message (cancelled stock)"
|
560 |
msgid "%1$d Cancelled"
|
561 |
msgstr ""
|
@@ -620,19 +647,19 @@ msgstr "%s anschauen"
|
|
620 |
msgid "Update %s"
|
621 |
msgstr "%s aktualisieren"
|
622 |
|
623 |
-
#: src/views/tickets/rsvp.php:
|
624 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: src/views/tickets/rsvp.php:
|
628 |
msgid "Send RSVP confirmation to:"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: src/views/tickets/rsvp.php:
|
632 |
msgid "Don't list me on the public attendee list"
|
633 |
msgstr "Zeige mich nicht auf der öffentlichen Teilnehmerliste"
|
634 |
|
635 |
-
#: src/views/tickets/rsvp.php:
|
636 |
msgid "Login to RSVP"
|
637 |
msgstr ""
|
638 |
|
@@ -640,7 +667,7 @@ msgstr ""
|
|
640 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: src/Tribe/Main.php:
|
644 |
msgid "Buy"
|
645 |
msgstr ""
|
646 |
|
@@ -652,35 +679,35 @@ msgstr ""
|
|
652 |
msgid "Please enter in without thousand separators and currency symbols."
|
653 |
msgstr ""
|
654 |
|
655 |
-
#: src/Tribe/RSVP.php:
|
656 |
msgid "You confirmed you will not be attending %s"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: src/Tribe/Tickets.php:
|
660 |
msgid "Use global stock"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: src/Tribe/Tickets.php:
|
664 |
msgid "Use global stock but cap sales"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: src/Tribe/Tickets.php:
|
668 |
msgid "Independent (do not use global stock)"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: src/Tribe/Tickets.php:
|
672 |
msgid "Tickets are not available as this %s has passed."
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: src/Tribe/Tickets.php:
|
676 |
msgid "Tickets are not yet available."
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: src/Tribe/Tickets.php:
|
680 |
msgid "Tickets are no longer available."
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: src/Tribe/Tickets.php:
|
684 |
msgid "There are no tickets available at this time."
|
685 |
msgstr ""
|
686 |
|
@@ -770,39 +797,39 @@ msgstr ""
|
|
770 |
msgid "Free"
|
771 |
msgstr "Kostenlos"
|
772 |
|
773 |
-
#: src/Tribe/Main.php:
|
774 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: src/Tribe/RSVP.php:
|
778 |
msgid "You can't RSVP more than the total remaining tickets."
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: src/Tribe/RSVP.php:
|
782 |
msgid "Return to the %1$sAttendees Report%2$s."
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: src/Tribe/RSVP.php:
|
786 |
msgid "Post updated. %1$s"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: src/Tribe/RSVP.php:
|
790 |
msgid "Post published. %1$s"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: src/Tribe/RSVP.php:
|
794 |
msgid "Post submitted."
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: src/Tribe/RSVP.php:
|
798 |
msgid "Post scheduled."
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: src/Tribe/RSVP.php:
|
802 |
msgid "Post draft updated."
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: src/Tribe/Tickets.php:
|
806 |
msgid "Editing the ticket price is currently disallowed."
|
807 |
msgstr ""
|
808 |
|
@@ -854,59 +881,59 @@ msgstr "Abbrechen"
|
|
854 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: src/Tribe/Main.php:
|
858 |
msgid "Support for Event Tickets"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: src/Tribe/Main.php:
|
862 |
msgid "Settings overview"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: src/Tribe/Main.php:
|
866 |
msgid "Features overview"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: src/Tribe/Main.php:
|
870 |
msgid "Troubleshooting common problems"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: src/Tribe/Main.php:
|
874 |
msgid "Customizing Event Tickets"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: src/Tribe/Main.php:
|
878 |
msgid "New User Primer"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: src/Tribe/Main.php:
|
882 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: src/Tribe/Main.php:
|
886 |
msgid "open-source forum on WordPress.org"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: src/Tribe/Main.php:
|
890 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: src/Tribe/Main.php:
|
894 |
msgid "premium support on our website"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: src/Tribe/Main.php:
|
898 |
msgid "Events Tickets Plus"
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: src/Tribe/Main.php:
|
902 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: src/Tribe/Main.php:
|
906 |
msgid "post a thread"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: src/Tribe/Main.php:
|
910 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
911 |
msgstr ""
|
912 |
|
@@ -944,7 +971,7 @@ msgid "Print"
|
|
944 |
msgstr "Drucken"
|
945 |
|
946 |
#: src/Tribe/Attendees_Table.php:490
|
947 |
-
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:
|
948 |
msgid "Email"
|
949 |
msgstr "E-Mail"
|
950 |
|
@@ -968,32 +995,32 @@ msgstr "Karten Bild"
|
|
968 |
msgid "Set as ticket header"
|
969 |
msgstr "Ein Karten Bild senden"
|
970 |
|
971 |
-
#: src/Tribe/RSVP.php:
|
972 |
msgctxt "Attendee number"
|
973 |
msgid "Attendee %1$s"
|
974 |
msgstr "Teilnehmende %1$s"
|
975 |
|
976 |
-
#: src/Tribe/RSVP.php:
|
977 |
msgid "Your tickets from %s"
|
978 |
msgstr "Ihre Tickets von %s"
|
979 |
|
980 |
-
#: src/Tribe/RSVP.php:
|
981 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: src/Tribe/RSVP.php:
|
985 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: src/Tribe/RSVP.php:
|
989 |
msgid "(deleted)"
|
990 |
msgstr "(gelöscht)"
|
991 |
|
992 |
-
#: src/Tribe/Tickets.php:
|
993 |
msgid "Your ticket has been saved."
|
994 |
msgstr "Ihre Karte wurde gespeichert."
|
995 |
|
996 |
-
#: src/Tribe/Tickets.php:
|
997 |
msgid "Your ticket has been deleted."
|
998 |
msgstr "Ihre Karte wurde gelöscht."
|
999 |
|
@@ -1182,25 +1209,25 @@ msgstr "Käufer"
|
|
1182 |
msgid "RSVP"
|
1183 |
msgstr "RSVP"
|
1184 |
|
1185 |
-
#: src/views/tickets/rsvp.php:
|
1186 |
msgid "%1$s out of %2$s available"
|
1187 |
msgstr "%1$s von %2$s verfügbar"
|
1188 |
|
1189 |
-
#: src/views/tickets/rsvp.php:
|
1190 |
msgid "Out of stock!"
|
1191 |
msgstr "Ausverkauft!"
|
1192 |
|
1193 |
-
#: src/views/tickets/rsvp.php:
|
1194 |
msgid "Full Name"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: src/views/tickets/rsvp.php:
|
1198 |
msgid "Confirm RSVP"
|
1199 |
msgstr "RSVP bestätigen"
|
1200 |
|
1201 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.
|
1202 |
#. Plugin Name of the plugin/theme
|
1203 |
-
#: src/Tribe/Main.php:
|
1204 |
msgid "Event Tickets"
|
1205 |
msgstr "Veranstaltungstickets"
|
1206 |
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
+
#: src/template-tags/tickets.php:185
|
14 |
+
msgctxt "list view stock sold out"
|
15 |
+
msgid "Sold out"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/template-tags/tickets.php:197
|
19 |
+
msgid "%s spot left"
|
20 |
+
msgid_plural "%s spots left"
|
21 |
+
msgstr[0] ""
|
22 |
+
msgstr[1] ""
|
23 |
+
|
24 |
+
#: src/template-tags/tickets.php:199
|
25 |
+
msgid "%s ticket left"
|
26 |
+
msgid_plural "%s tickets left"
|
27 |
+
msgstr[0] ""
|
28 |
+
msgstr[1] ""
|
29 |
+
|
30 |
+
#: src/template-tags/tickets.php:208
|
31 |
+
msgctxt "list view rsvp now ticket button"
|
32 |
+
msgid "RSVP Now!"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: src/template-tags/tickets.php:211
|
36 |
+
msgctxt "list view buy now ticket button"
|
37 |
+
msgid "Buy Now!"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: src/views/tickets/rsvp.php:189
|
41 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: src/template-tags/tickets.php:386
|
45 |
msgctxt "ticket stock message (remaining stock)"
|
46 |
msgid "%1$d Remaining"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: src/template-tags/tickets.php:389
|
50 |
msgctxt "ticket stock message (pending stock)"
|
51 |
msgid "%1$d Awaiting Review"
|
52 |
msgstr ""
|
131 |
msgid "Location of Tickets form"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: src/template-tags/tickets.php:371
|
135 |
msgid "Sold"
|
136 |
msgstr "Verkauft"
|
137 |
|
138 |
+
#: src/template-tags/tickets.php:373
|
139 |
msgctxt "separate going and remain RSVPs"
|
140 |
msgid "RSVP'd Going"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: src/template-tags/tickets.php:378
|
144 |
msgid "%s %d"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: src/template-tags/tickets.php:384
|
148 |
msgctxt "ticket global stock message (remaining stock)"
|
149 |
msgid "%1$d Remaining of the global stock"
|
150 |
msgstr ""
|
188 |
msgid "RSVP: "
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: src/views/tickets/rsvp.php:32
|
192 |
msgctxt "form heading"
|
193 |
msgid "RSVP"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: src/views/tickets/rsvp.php:143
|
197 |
msgctxt "order status label"
|
198 |
msgid "RSVP"
|
199 |
msgstr ""
|
465 |
msgid "RSVPs"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: src/Tribe/Main.php:596
|
469 |
msgid "Welcome to Event Tickets"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: src/Tribe/Main.php:731
|
473 |
msgctxt "button text"
|
474 |
msgid "RSVP"
|
475 |
msgstr ""
|
493 |
msgid "Not Going:"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: src/Tribe/RSVP.php:163
|
497 |
msgctxt "ticket provider"
|
498 |
msgid "RSVP"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: src/Tribe/RSVP.php:279
|
502 |
msgid "RSVP Tickets"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: src/Tribe/RSVP.php:280
|
506 |
msgid "RSVP Ticket"
|
507 |
msgstr ""
|
508 |
|
578 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: src/template-tags/tickets.php:368
|
582 |
msgid "global inventory"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: src/template-tags/tickets.php:391
|
586 |
msgctxt "ticket stock message (cancelled stock)"
|
587 |
msgid "%1$d Cancelled"
|
588 |
msgstr ""
|
647 |
msgid "Update %s"
|
648 |
msgstr "%s aktualisieren"
|
649 |
|
650 |
+
#: src/views/tickets/rsvp.php:50
|
651 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: src/views/tickets/rsvp.php:114
|
655 |
msgid "Send RSVP confirmation to:"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: src/views/tickets/rsvp.php:159
|
659 |
msgid "Don't list me on the public attendee list"
|
660 |
msgstr "Zeige mich nicht auf der öffentlichen Teilnehmerliste"
|
661 |
|
662 |
+
#: src/views/tickets/rsvp.php:171
|
663 |
msgid "Login to RSVP"
|
664 |
msgstr ""
|
665 |
|
667 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: src/Tribe/Main.php:731
|
671 |
msgid "Buy"
|
672 |
msgstr ""
|
673 |
|
679 |
msgid "Please enter in without thousand separators and currency symbols."
|
680 |
msgstr ""
|
681 |
|
682 |
+
#: src/Tribe/RSVP.php:743
|
683 |
msgid "You confirmed you will not be attending %s"
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: src/Tribe/Tickets.php:986
|
687 |
msgid "Use global stock"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: src/Tribe/Tickets.php:987
|
691 |
msgid "Use global stock but cap sales"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: src/Tribe/Tickets.php:988
|
695 |
msgid "Independent (do not use global stock)"
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: src/Tribe/Tickets.php:1573
|
699 |
msgid "Tickets are not available as this %s has passed."
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: src/Tribe/Tickets.php:1575
|
703 |
msgid "Tickets are not yet available."
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: src/Tribe/Tickets.php:1577
|
707 |
msgid "Tickets are no longer available."
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: src/Tribe/Tickets.php:1579
|
711 |
msgid "There are no tickets available at this time."
|
712 |
msgstr ""
|
713 |
|
797 |
msgid "Free"
|
798 |
msgstr "Kostenlos"
|
799 |
|
800 |
+
#: src/Tribe/Main.php:495
|
801 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: src/Tribe/RSVP.php:973
|
805 |
msgid "You can't RSVP more than the total remaining tickets."
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: src/Tribe/RSVP.php:1513
|
809 |
msgid "Return to the %1$sAttendees Report%2$s."
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: src/Tribe/RSVP.php:1520
|
813 |
msgid "Post updated. %1$s"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: src/Tribe/RSVP.php:1524
|
817 |
msgid "Post published. %1$s"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: src/Tribe/RSVP.php:1527
|
821 |
msgid "Post submitted."
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: src/Tribe/RSVP.php:1528
|
825 |
msgid "Post scheduled."
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: src/Tribe/RSVP.php:1529
|
829 |
msgid "Post draft updated."
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: src/Tribe/Tickets.php:701
|
833 |
msgid "Editing the ticket price is currently disallowed."
|
834 |
msgstr ""
|
835 |
|
881 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: src/Tribe/Main.php:441
|
885 |
msgid "Support for Event Tickets"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: src/Tribe/Main.php:443
|
889 |
msgid "Settings overview"
|
890 |
msgstr ""
|
891 |
|
892 |
+
#: src/Tribe/Main.php:444
|
893 |
msgid "Features overview"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: src/Tribe/Main.php:445
|
897 |
msgid "Troubleshooting common problems"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: src/Tribe/Main.php:446
|
901 |
msgid "Customizing Event Tickets"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: src/Tribe/Main.php:463
|
905 |
msgid "New User Primer"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: src/Tribe/Main.php:465
|
909 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
910 |
msgstr ""
|
911 |
|
912 |
+
#: src/Tribe/Main.php:482
|
913 |
msgid "open-source forum on WordPress.org"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: src/Tribe/Main.php:483
|
917 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: src/Tribe/Main.php:485
|
921 |
msgid "premium support on our website"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: src/Tribe/Main.php:486
|
925 |
msgid "Events Tickets Plus"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: src/Tribe/Main.php:487
|
929 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: src/Tribe/Main.php:489 src/Tribe/Main.php:494
|
933 |
msgid "post a thread"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: src/Tribe/Main.php:490
|
937 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
938 |
msgstr ""
|
939 |
|
971 |
msgstr "Drucken"
|
972 |
|
973 |
#: src/Tribe/Attendees_Table.php:490
|
974 |
+
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:134
|
975 |
msgid "Email"
|
976 |
msgstr "E-Mail"
|
977 |
|
995 |
msgid "Set as ticket header"
|
996 |
msgstr "Ein Karten Bild senden"
|
997 |
|
998 |
+
#: src/Tribe/RSVP.php:241
|
999 |
msgctxt "Attendee number"
|
1000 |
msgid "Attendee %1$s"
|
1001 |
msgstr "Teilnehmende %1$s"
|
1002 |
|
1003 |
+
#: src/Tribe/RSVP.php:712
|
1004 |
msgid "Your tickets from %s"
|
1005 |
msgstr "Ihre Tickets von %s"
|
1006 |
|
1007 |
+
#: src/Tribe/RSVP.php:967
|
1008 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
1009 |
msgstr ""
|
1010 |
|
1011 |
+
#: src/Tribe/RSVP.php:978
|
1012 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
1013 |
msgstr ""
|
1014 |
|
1015 |
+
#: src/Tribe/RSVP.php:1222
|
1016 |
msgid "(deleted)"
|
1017 |
msgstr "(gelöscht)"
|
1018 |
|
1019 |
+
#: src/Tribe/Tickets.php:469
|
1020 |
msgid "Your ticket has been saved."
|
1021 |
msgstr "Ihre Karte wurde gespeichert."
|
1022 |
|
1023 |
+
#: src/Tribe/Tickets.php:647
|
1024 |
msgid "Your ticket has been deleted."
|
1025 |
msgstr "Ihre Karte wurde gelöscht."
|
1026 |
|
1209 |
msgid "RSVP"
|
1210 |
msgstr "RSVP"
|
1211 |
|
1212 |
+
#: src/views/tickets/rsvp.php:84
|
1213 |
msgid "%1$s out of %2$s available"
|
1214 |
msgstr "%1$s von %2$s verfügbar"
|
1215 |
|
1216 |
+
#: src/views/tickets/rsvp.php:88
|
1217 |
msgid "Out of stock!"
|
1218 |
msgstr "Ausverkauft!"
|
1219 |
|
1220 |
+
#: src/views/tickets/rsvp.php:126
|
1221 |
msgid "Full Name"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: src/views/tickets/rsvp.php:180
|
1225 |
msgid "Confirm RSVP"
|
1226 |
msgstr "RSVP bestätigen"
|
1227 |
|
1228 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.5dev1) #-#-#-#-#
|
1229 |
#. Plugin Name of the plugin/theme
|
1230 |
+
#: src/Tribe/Main.php:509
|
1231 |
msgid "Event Tickets"
|
1232 |
msgstr "Veranstaltungstickets"
|
1233 |
|
lang/event-tickets-nl_NL.po
CHANGED
@@ -10,16 +10,43 @@ msgstr ""
|
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
-
#: src/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
15 |
msgstr ""
|
16 |
|
17 |
-
#: src/template-tags/tickets.php:
|
18 |
msgctxt "ticket stock message (remaining stock)"
|
19 |
msgid "%1$d Remaining"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: src/template-tags/tickets.php:
|
23 |
msgctxt "ticket stock message (pending stock)"
|
24 |
msgid "%1$d Awaiting Review"
|
25 |
msgstr ""
|
@@ -104,20 +131,20 @@ msgstr ""
|
|
104 |
msgid "Location of Tickets form"
|
105 |
msgstr ""
|
106 |
|
107 |
-
#: src/template-tags/tickets.php:
|
108 |
msgid "Sold"
|
109 |
msgstr "Verkocht"
|
110 |
|
111 |
-
#: src/template-tags/tickets.php:
|
112 |
msgctxt "separate going and remain RSVPs"
|
113 |
msgid "RSVP'd Going"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: src/template-tags/tickets.php:
|
117 |
msgid "%s %d"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/template-tags/tickets.php:
|
121 |
msgctxt "ticket global stock message (remaining stock)"
|
122 |
msgid "%1$d Remaining of the global stock"
|
123 |
msgstr ""
|
@@ -161,12 +188,12 @@ msgctxt "order status label"
|
|
161 |
msgid "RSVP: "
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: src/views/tickets/rsvp.php:
|
165 |
msgctxt "form heading"
|
166 |
msgid "RSVP"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: src/views/tickets/rsvp.php:
|
170 |
msgctxt "order status label"
|
171 |
msgid "RSVP"
|
172 |
msgstr ""
|
@@ -438,11 +465,11 @@ msgctxt "post type label"
|
|
438 |
msgid "RSVPs"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: src/Tribe/Main.php:
|
442 |
msgid "Welcome to Event Tickets"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: src/Tribe/Main.php:
|
446 |
msgctxt "button text"
|
447 |
msgid "RSVP"
|
448 |
msgstr ""
|
@@ -466,16 +493,16 @@ msgctxt "attendee summary"
|
|
466 |
msgid "Not Going:"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: src/Tribe/RSVP.php:
|
470 |
msgctxt "ticket provider"
|
471 |
msgid "RSVP"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: src/Tribe/RSVP.php:
|
475 |
msgid "RSVP Tickets"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: src/Tribe/RSVP.php:
|
479 |
msgid "RSVP Ticket"
|
480 |
msgstr ""
|
481 |
|
@@ -551,11 +578,11 @@ msgstr ""
|
|
551 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
552 |
msgstr ""
|
553 |
|
554 |
-
#: src/template-tags/tickets.php:
|
555 |
msgid "global inventory"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: src/template-tags/tickets.php:
|
559 |
msgctxt "ticket stock message (cancelled stock)"
|
560 |
msgid "%1$d Cancelled"
|
561 |
msgstr ""
|
@@ -620,19 +647,19 @@ msgstr "Bekijk %s"
|
|
620 |
msgid "Update %s"
|
621 |
msgstr "Werk %s bij"
|
622 |
|
623 |
-
#: src/views/tickets/rsvp.php:
|
624 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: src/views/tickets/rsvp.php:
|
628 |
msgid "Send RSVP confirmation to:"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: src/views/tickets/rsvp.php:
|
632 |
msgid "Don't list me on the public attendee list"
|
633 |
msgstr "Laat mij niet zien op de publieke deelnemerslijst"
|
634 |
|
635 |
-
#: src/views/tickets/rsvp.php:
|
636 |
msgid "Login to RSVP"
|
637 |
msgstr ""
|
638 |
|
@@ -640,7 +667,7 @@ msgstr ""
|
|
640 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: src/Tribe/Main.php:
|
644 |
msgid "Buy"
|
645 |
msgstr ""
|
646 |
|
@@ -652,35 +679,35 @@ msgstr ""
|
|
652 |
msgid "Please enter in without thousand separators and currency symbols."
|
653 |
msgstr ""
|
654 |
|
655 |
-
#: src/Tribe/RSVP.php:
|
656 |
msgid "You confirmed you will not be attending %s"
|
657 |
msgstr ""
|
658 |
|
659 |
-
#: src/Tribe/Tickets.php:
|
660 |
msgid "Use global stock"
|
661 |
msgstr ""
|
662 |
|
663 |
-
#: src/Tribe/Tickets.php:
|
664 |
msgid "Use global stock but cap sales"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: src/Tribe/Tickets.php:
|
668 |
msgid "Independent (do not use global stock)"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: src/Tribe/Tickets.php:
|
672 |
msgid "Tickets are not available as this %s has passed."
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: src/Tribe/Tickets.php:
|
676 |
msgid "Tickets are not yet available."
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: src/Tribe/Tickets.php:
|
680 |
msgid "Tickets are no longer available."
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: src/Tribe/Tickets.php:
|
684 |
msgid "There are no tickets available at this time."
|
685 |
msgstr ""
|
686 |
|
@@ -770,39 +797,39 @@ msgstr ""
|
|
770 |
msgid "Free"
|
771 |
msgstr "Gratis"
|
772 |
|
773 |
-
#: src/Tribe/Main.php:
|
774 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: src/Tribe/RSVP.php:
|
778 |
msgid "You can't RSVP more than the total remaining tickets."
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: src/Tribe/RSVP.php:
|
782 |
msgid "Return to the %1$sAttendees Report%2$s."
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: src/Tribe/RSVP.php:
|
786 |
msgid "Post updated. %1$s"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: src/Tribe/RSVP.php:
|
790 |
msgid "Post published. %1$s"
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: src/Tribe/RSVP.php:
|
794 |
msgid "Post submitted."
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: src/Tribe/RSVP.php:
|
798 |
msgid "Post scheduled."
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: src/Tribe/RSVP.php:
|
802 |
msgid "Post draft updated."
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: src/Tribe/Tickets.php:
|
806 |
msgid "Editing the ticket price is currently disallowed."
|
807 |
msgstr ""
|
808 |
|
@@ -854,59 +881,59 @@ msgstr "Annuleren"
|
|
854 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
855 |
msgstr ""
|
856 |
|
857 |
-
#: src/Tribe/Main.php:
|
858 |
msgid "Support for Event Tickets"
|
859 |
msgstr ""
|
860 |
|
861 |
-
#: src/Tribe/Main.php:
|
862 |
msgid "Settings overview"
|
863 |
msgstr ""
|
864 |
|
865 |
-
#: src/Tribe/Main.php:
|
866 |
msgid "Features overview"
|
867 |
msgstr ""
|
868 |
|
869 |
-
#: src/Tribe/Main.php:
|
870 |
msgid "Troubleshooting common problems"
|
871 |
msgstr ""
|
872 |
|
873 |
-
#: src/Tribe/Main.php:
|
874 |
msgid "Customizing Event Tickets"
|
875 |
msgstr ""
|
876 |
|
877 |
-
#: src/Tribe/Main.php:
|
878 |
msgid "New User Primer"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: src/Tribe/Main.php:
|
882 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
883 |
msgstr ""
|
884 |
|
885 |
-
#: src/Tribe/Main.php:
|
886 |
msgid "open-source forum on WordPress.org"
|
887 |
msgstr ""
|
888 |
|
889 |
-
#: src/Tribe/Main.php:
|
890 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
891 |
msgstr ""
|
892 |
|
893 |
-
#: src/Tribe/Main.php:
|
894 |
msgid "premium support on our website"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: src/Tribe/Main.php:
|
898 |
msgid "Events Tickets Plus"
|
899 |
msgstr "Events Tickets Plus"
|
900 |
|
901 |
-
#: src/Tribe/Main.php:
|
902 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
903 |
msgstr ""
|
904 |
|
905 |
-
#: src/Tribe/Main.php:
|
906 |
msgid "post a thread"
|
907 |
msgstr ""
|
908 |
|
909 |
-
#: src/Tribe/Main.php:
|
910 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
911 |
msgstr ""
|
912 |
|
@@ -944,7 +971,7 @@ msgid "Print"
|
|
944 |
msgstr "Print"
|
945 |
|
946 |
#: src/Tribe/Attendees_Table.php:490
|
947 |
-
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:
|
948 |
msgid "Email"
|
949 |
msgstr "E-mail"
|
950 |
|
@@ -968,32 +995,32 @@ msgstr "Ticket header afbeelding"
|
|
968 |
msgid "Set as ticket header"
|
969 |
msgstr "Stel in als ticket header"
|
970 |
|
971 |
-
#: src/Tribe/RSVP.php:
|
972 |
msgctxt "Attendee number"
|
973 |
msgid "Attendee %1$s"
|
974 |
msgstr "Deelnemer %1$s"
|
975 |
|
976 |
-
#: src/Tribe/RSVP.php:
|
977 |
msgid "Your tickets from %s"
|
978 |
msgstr "Uw tickets van %s"
|
979 |
|
980 |
-
#: src/Tribe/RSVP.php:
|
981 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
982 |
msgstr "Uw RSVP is ontvangen! Controleer uw e-mail voor de bevestiging van uw RSVP."
|
983 |
|
984 |
-
#: src/Tribe/RSVP.php:
|
985 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
986 |
msgstr "Om RSVP, moet u uw naam en een geldig e-mailadres invoeren."
|
987 |
|
988 |
-
#: src/Tribe/RSVP.php:
|
989 |
msgid "(deleted)"
|
990 |
msgstr "(verwijderd)"
|
991 |
|
992 |
-
#: src/Tribe/Tickets.php:
|
993 |
msgid "Your ticket has been saved."
|
994 |
msgstr "Je ticket is opgeslagen."
|
995 |
|
996 |
-
#: src/Tribe/Tickets.php:
|
997 |
msgid "Your ticket has been deleted."
|
998 |
msgstr "Je ticket is verwijderd."
|
999 |
|
@@ -1182,25 +1209,25 @@ msgstr "Koper"
|
|
1182 |
msgid "RSVP"
|
1183 |
msgstr "RSVP"
|
1184 |
|
1185 |
-
#: src/views/tickets/rsvp.php:
|
1186 |
msgid "%1$s out of %2$s available"
|
1187 |
msgstr "%1$s uit %2$s beschikbaar"
|
1188 |
|
1189 |
-
#: src/views/tickets/rsvp.php:
|
1190 |
msgid "Out of stock!"
|
1191 |
msgstr "Uitverkocht!"
|
1192 |
|
1193 |
-
#: src/views/tickets/rsvp.php:
|
1194 |
msgid "Full Name"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: src/views/tickets/rsvp.php:
|
1198 |
msgid "Confirm RSVP"
|
1199 |
msgstr "RSVP bevestigen"
|
1200 |
|
1201 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.
|
1202 |
#. Plugin Name of the plugin/theme
|
1203 |
-
#: src/Tribe/Main.php:
|
1204 |
msgid "Event Tickets"
|
1205 |
msgstr "Event Tickets"
|
1206 |
|
10 |
"X-Generator: GlotPress/1.0-alpha-1100\n"
|
11 |
"Project-Id-Version: Event Tickets\n"
|
12 |
|
13 |
+
#: src/template-tags/tickets.php:185
|
14 |
+
msgctxt "list view stock sold out"
|
15 |
+
msgid "Sold out"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/template-tags/tickets.php:197
|
19 |
+
msgid "%s spot left"
|
20 |
+
msgid_plural "%s spots left"
|
21 |
+
msgstr[0] ""
|
22 |
+
msgstr[1] ""
|
23 |
+
|
24 |
+
#: src/template-tags/tickets.php:199
|
25 |
+
msgid "%s ticket left"
|
26 |
+
msgid_plural "%s tickets left"
|
27 |
+
msgstr[0] ""
|
28 |
+
msgstr[1] ""
|
29 |
+
|
30 |
+
#: src/template-tags/tickets.php:208
|
31 |
+
msgctxt "list view rsvp now ticket button"
|
32 |
+
msgid "RSVP Now!"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: src/template-tags/tickets.php:211
|
36 |
+
msgctxt "list view buy now ticket button"
|
37 |
+
msgid "Buy Now!"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: src/views/tickets/rsvp.php:189
|
41 |
msgid "You must have JavaScript activated to purchase tickets. Please enable JavaScript in your browser."
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: src/template-tags/tickets.php:386
|
45 |
msgctxt "ticket stock message (remaining stock)"
|
46 |
msgid "%1$d Remaining"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: src/template-tags/tickets.php:389
|
50 |
msgctxt "ticket stock message (pending stock)"
|
51 |
msgid "%1$d Awaiting Review"
|
52 |
msgstr ""
|
131 |
msgid "Location of Tickets form"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: src/template-tags/tickets.php:371
|
135 |
msgid "Sold"
|
136 |
msgstr "Verkocht"
|
137 |
|
138 |
+
#: src/template-tags/tickets.php:373
|
139 |
msgctxt "separate going and remain RSVPs"
|
140 |
msgid "RSVP'd Going"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: src/template-tags/tickets.php:378
|
144 |
msgid "%s %d"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: src/template-tags/tickets.php:384
|
148 |
msgctxt "ticket global stock message (remaining stock)"
|
149 |
msgid "%1$d Remaining of the global stock"
|
150 |
msgstr ""
|
188 |
msgid "RSVP: "
|
189 |
msgstr ""
|
190 |
|
191 |
+
#: src/views/tickets/rsvp.php:32
|
192 |
msgctxt "form heading"
|
193 |
msgid "RSVP"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: src/views/tickets/rsvp.php:143
|
197 |
msgctxt "order status label"
|
198 |
msgid "RSVP"
|
199 |
msgstr ""
|
465 |
msgid "RSVPs"
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: src/Tribe/Main.php:596
|
469 |
msgid "Welcome to Event Tickets"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: src/Tribe/Main.php:731
|
473 |
msgctxt "button text"
|
474 |
msgid "RSVP"
|
475 |
msgstr ""
|
493 |
msgid "Not Going:"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: src/Tribe/RSVP.php:163
|
497 |
msgctxt "ticket provider"
|
498 |
msgid "RSVP"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: src/Tribe/RSVP.php:279
|
502 |
msgid "RSVP Tickets"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: src/Tribe/RSVP.php:280
|
506 |
msgid "RSVP Ticket"
|
507 |
msgstr ""
|
508 |
|
578 |
msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: src/template-tags/tickets.php:368
|
582 |
msgid "global inventory"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: src/template-tags/tickets.php:391
|
586 |
msgctxt "ticket stock message (cancelled stock)"
|
587 |
msgid "%1$d Cancelled"
|
588 |
msgstr ""
|
647 |
msgid "Update %s"
|
648 |
msgstr "Werk %s bij"
|
649 |
|
650 |
+
#: src/views/tickets/rsvp.php:50
|
651 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: src/views/tickets/rsvp.php:114
|
655 |
msgid "Send RSVP confirmation to:"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: src/views/tickets/rsvp.php:159
|
659 |
msgid "Don't list me on the public attendee list"
|
660 |
msgstr "Laat mij niet zien op de publieke deelnemerslijst"
|
661 |
|
662 |
+
#: src/views/tickets/rsvp.php:171
|
663 |
msgid "Login to RSVP"
|
664 |
msgstr ""
|
665 |
|
667 |
msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: src/Tribe/Main.php:731
|
671 |
msgid "Buy"
|
672 |
msgstr ""
|
673 |
|
679 |
msgid "Please enter in without thousand separators and currency symbols."
|
680 |
msgstr ""
|
681 |
|
682 |
+
#: src/Tribe/RSVP.php:743
|
683 |
msgid "You confirmed you will not be attending %s"
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: src/Tribe/Tickets.php:986
|
687 |
msgid "Use global stock"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: src/Tribe/Tickets.php:987
|
691 |
msgid "Use global stock but cap sales"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: src/Tribe/Tickets.php:988
|
695 |
msgid "Independent (do not use global stock)"
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: src/Tribe/Tickets.php:1573
|
699 |
msgid "Tickets are not available as this %s has passed."
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: src/Tribe/Tickets.php:1575
|
703 |
msgid "Tickets are not yet available."
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: src/Tribe/Tickets.php:1577
|
707 |
msgid "Tickets are no longer available."
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: src/Tribe/Tickets.php:1579
|
711 |
msgid "There are no tickets available at this time."
|
712 |
msgstr ""
|
713 |
|
797 |
msgid "Free"
|
798 |
msgstr "Gratis"
|
799 |
|
800 |
+
#: src/Tribe/Main.php:495
|
801 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: src/Tribe/RSVP.php:973
|
805 |
msgid "You can't RSVP more than the total remaining tickets."
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: src/Tribe/RSVP.php:1513
|
809 |
msgid "Return to the %1$sAttendees Report%2$s."
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: src/Tribe/RSVP.php:1520
|
813 |
msgid "Post updated. %1$s"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: src/Tribe/RSVP.php:1524
|
817 |
msgid "Post published. %1$s"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: src/Tribe/RSVP.php:1527
|
821 |
msgid "Post submitted."
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: src/Tribe/RSVP.php:1528
|
825 |
msgid "Post scheduled."
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: src/Tribe/RSVP.php:1529
|
829 |
msgid "Post draft updated."
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: src/Tribe/Tickets.php:701
|
833 |
msgid "Editing the ticket price is currently disallowed."
|
834 |
msgstr ""
|
835 |
|
881 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: src/Tribe/Main.php:441
|
885 |
msgid "Support for Event Tickets"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: src/Tribe/Main.php:443
|
889 |
msgid "Settings overview"
|
890 |
msgstr ""
|
891 |
|
892 |
+
#: src/Tribe/Main.php:444
|
893 |
msgid "Features overview"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: src/Tribe/Main.php:445
|
897 |
msgid "Troubleshooting common problems"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: src/Tribe/Main.php:446
|
901 |
msgid "Customizing Event Tickets"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: src/Tribe/Main.php:463
|
905 |
msgid "New User Primer"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: src/Tribe/Main.php:465
|
909 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
910 |
msgstr ""
|
911 |
|
912 |
+
#: src/Tribe/Main.php:482
|
913 |
msgid "open-source forum on WordPress.org"
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: src/Tribe/Main.php:483
|
917 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: src/Tribe/Main.php:485
|
921 |
msgid "premium support on our website"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: src/Tribe/Main.php:486
|
925 |
msgid "Events Tickets Plus"
|
926 |
msgstr "Events Tickets Plus"
|
927 |
|
928 |
+
#: src/Tribe/Main.php:487
|
929 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: src/Tribe/Main.php:489 src/Tribe/Main.php:494
|
933 |
msgid "post a thread"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: src/Tribe/Main.php:490
|
937 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
938 |
msgstr ""
|
939 |
|
971 |
msgstr "Print"
|
972 |
|
973 |
#: src/Tribe/Attendees_Table.php:490
|
974 |
+
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:134
|
975 |
msgid "Email"
|
976 |
msgstr "E-mail"
|
977 |
|
995 |
msgid "Set as ticket header"
|
996 |
msgstr "Stel in als ticket header"
|
997 |
|
998 |
+
#: src/Tribe/RSVP.php:241
|
999 |
msgctxt "Attendee number"
|
1000 |
msgid "Attendee %1$s"
|
1001 |
msgstr "Deelnemer %1$s"
|
1002 |
|
1003 |
+
#: src/Tribe/RSVP.php:712
|
1004 |
msgid "Your tickets from %s"
|
1005 |
msgstr "Uw tickets van %s"
|
1006 |
|
1007 |
+
#: src/Tribe/RSVP.php:967
|
1008 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
1009 |
msgstr "Uw RSVP is ontvangen! Controleer uw e-mail voor de bevestiging van uw RSVP."
|
1010 |
|
1011 |
+
#: src/Tribe/RSVP.php:978
|
1012 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
1013 |
msgstr "Om RSVP, moet u uw naam en een geldig e-mailadres invoeren."
|
1014 |
|
1015 |
+
#: src/Tribe/RSVP.php:1222
|
1016 |
msgid "(deleted)"
|
1017 |
msgstr "(verwijderd)"
|
1018 |
|
1019 |
+
#: src/Tribe/Tickets.php:469
|
1020 |
msgid "Your ticket has been saved."
|
1021 |
msgstr "Je ticket is opgeslagen."
|
1022 |
|
1023 |
+
#: src/Tribe/Tickets.php:647
|
1024 |
msgid "Your ticket has been deleted."
|
1025 |
msgstr "Je ticket is verwijderd."
|
1026 |
|
1209 |
msgid "RSVP"
|
1210 |
msgstr "RSVP"
|
1211 |
|
1212 |
+
#: src/views/tickets/rsvp.php:84
|
1213 |
msgid "%1$s out of %2$s available"
|
1214 |
msgstr "%1$s uit %2$s beschikbaar"
|
1215 |
|
1216 |
+
#: src/views/tickets/rsvp.php:88
|
1217 |
msgid "Out of stock!"
|
1218 |
msgstr "Uitverkocht!"
|
1219 |
|
1220 |
+
#: src/views/tickets/rsvp.php:126
|
1221 |
msgid "Full Name"
|
1222 |
msgstr ""
|
1223 |
|
1224 |
+
#: src/views/tickets/rsvp.php:180
|
1225 |
msgid "Confirm RSVP"
|
1226 |
msgstr "RSVP bevestigen"
|
1227 |
|
1228 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.5dev1) #-#-#-#-#
|
1229 |
#. Plugin Name of the plugin/theme
|
1230 |
+
#: src/Tribe/Main.php:509
|
1231 |
msgid "Event Tickets"
|
1232 |
msgstr "Event Tickets"
|
1233 |
|
lang/event-tickets.pot
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Event Tickets 4.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
-
"POT-Creation-Date: 2017-06-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2017-06-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
@@ -224,7 +224,7 @@ msgid "Print"
|
|
224 |
msgstr ""
|
225 |
|
226 |
#: src/Tribe/Attendees_Table.php:490
|
227 |
-
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:
|
228 |
msgid "Email"
|
229 |
msgstr ""
|
230 |
|
@@ -304,95 +304,95 @@ msgid ""
|
|
304 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: src/Tribe/Main.php:
|
308 |
msgid "Support for Event Tickets"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: src/Tribe/Main.php:
|
312 |
msgid "Settings overview"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: src/Tribe/Main.php:
|
316 |
msgid "Features overview"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: src/Tribe/Main.php:
|
320 |
msgid "Troubleshooting common problems"
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: src/Tribe/Main.php:
|
324 |
msgid "Customizing Event Tickets"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: src/Tribe/Main.php:
|
328 |
msgid "New User Primer"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: src/Tribe/Main.php:
|
332 |
msgid ""
|
333 |
"We are committed to helping you sell tickets for your event. Check out our "
|
334 |
"handy %s to get started."
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: src/Tribe/Main.php:
|
338 |
msgid "open-source forum on WordPress.org"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: src/Tribe/Main.php:
|
342 |
msgid ""
|
343 |
"If you have tried the above steps and are still having trouble, you can post "
|
344 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
345 |
"and would be happy to assist you there."
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: src/Tribe/Main.php:
|
349 |
msgid "premium support on our website"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: src/Tribe/Main.php:
|
353 |
msgid "Events Tickets Plus"
|
354 |
msgstr ""
|
355 |
|
356 |
-
#: src/Tribe/Main.php:
|
357 |
msgid ""
|
358 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
359 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
360 |
"directly and expect a response within 24-48 hours during weekdays."
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: src/Tribe/Main.php:
|
364 |
msgid "post a thread"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: src/Tribe/Main.php:
|
368 |
msgid ""
|
369 |
"Already have Events Tickets Plus? You can %s in our premium support forums. "
|
370 |
"Our support team monitors the forums and will respond to your thread within "
|
371 |
"24-48 hours (during the week)."
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: src/Tribe/Main.php:
|
375 |
msgid ""
|
376 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
377 |
"premium support forums. Our support team monitors the forums and will "
|
378 |
"respond to your thread within 24-48 hours (during the week)."
|
379 |
msgstr ""
|
380 |
|
381 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.
|
382 |
#. Plugin Name of the plugin/theme
|
383 |
-
#: src/Tribe/Main.php:
|
384 |
msgid "Event Tickets"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: src/Tribe/Main.php:
|
388 |
msgid "Welcome to Event Tickets"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: src/Tribe/Main.php:
|
392 |
msgid "Buy"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: src/Tribe/Main.php:
|
396 |
msgctxt "button text"
|
397 |
msgid "RSVP"
|
398 |
msgstr ""
|
@@ -434,110 +434,110 @@ msgctxt "attendee summary"
|
|
434 |
msgid "Not Going:"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: src/Tribe/RSVP.php:
|
438 |
msgctxt "ticket provider"
|
439 |
msgid "RSVP"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: src/Tribe/RSVP.php:
|
443 |
msgctxt "Attendee number"
|
444 |
msgid "Attendee %1$s"
|
445 |
msgstr ""
|
446 |
|
447 |
-
#: src/Tribe/RSVP.php:
|
448 |
msgid "RSVP Tickets"
|
449 |
msgstr ""
|
450 |
|
451 |
-
#: src/Tribe/RSVP.php:
|
452 |
msgid "RSVP Ticket"
|
453 |
msgstr ""
|
454 |
|
455 |
-
#: src/Tribe/RSVP.php:
|
456 |
msgid "Your tickets from %s"
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: src/Tribe/RSVP.php:
|
460 |
msgid "You confirmed you will not be attending %s"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: src/Tribe/RSVP.php:
|
464 |
msgid ""
|
465 |
"Your RSVP has been received! Check your email for your RSVP confirmation."
|
466 |
msgstr ""
|
467 |
|
468 |
-
#: src/Tribe/RSVP.php:
|
469 |
msgid "You can't RSVP more than the total remaining tickets."
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: src/Tribe/RSVP.php:
|
473 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: src/Tribe/RSVP.php:
|
477 |
msgid "(deleted)"
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: src/Tribe/RSVP.php:
|
481 |
msgid "Return to the %1$sAttendees Report%2$s."
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: src/Tribe/RSVP.php:
|
485 |
msgid "Post updated. %1$s"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: src/Tribe/RSVP.php:
|
489 |
msgid "Post published. %1$s"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: src/Tribe/RSVP.php:
|
493 |
msgid "Post submitted."
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: src/Tribe/RSVP.php:
|
497 |
msgid "Post scheduled."
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: src/Tribe/RSVP.php:
|
501 |
msgid "Post draft updated."
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: src/Tribe/Tickets.php:
|
505 |
msgid "Your ticket has been saved."
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: src/Tribe/Tickets.php:
|
509 |
msgid "Your ticket has been deleted."
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: src/Tribe/Tickets.php:
|
513 |
msgid "Editing the ticket price is currently disallowed."
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: src/Tribe/Tickets.php:
|
517 |
msgid "Use global stock"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: src/Tribe/Tickets.php:
|
521 |
msgid "Use global stock but cap sales"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: src/Tribe/Tickets.php:
|
525 |
msgid "Independent (do not use global stock)"
|
526 |
msgstr ""
|
527 |
|
528 |
-
#: src/Tribe/Tickets.php:
|
529 |
msgid "Tickets are not available as this %s has passed."
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: src/Tribe/Tickets.php:
|
533 |
msgid "Tickets are not yet available."
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: src/Tribe/Tickets.php:
|
537 |
msgid "Tickets are no longer available."
|
538 |
msgstr ""
|
539 |
|
540 |
-
#: src/Tribe/Tickets.php:
|
541 |
msgid "There are no tickets available at this time."
|
542 |
msgstr ""
|
543 |
|
@@ -1078,39 +1078,66 @@ msgid ""
|
|
1078 |
"General Settings admin screen) before adjusting this setting."
|
1079 |
msgstr ""
|
1080 |
|
1081 |
-
#: src/template-tags/tickets.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1082 |
msgid "global inventory"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: src/template-tags/tickets.php:
|
1086 |
msgid "Sold"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: src/template-tags/tickets.php:
|
1090 |
msgctxt "separate going and remain RSVPs"
|
1091 |
msgid "RSVP'd Going"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
-
#: src/template-tags/tickets.php:
|
1095 |
msgid "%s %d"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: src/template-tags/tickets.php:
|
1099 |
msgctxt "ticket global stock message (remaining stock)"
|
1100 |
msgid "%1$d Remaining of the global stock"
|
1101 |
msgstr ""
|
1102 |
|
1103 |
-
#: src/template-tags/tickets.php:
|
1104 |
msgctxt "ticket stock message (remaining stock)"
|
1105 |
msgid "%1$d Remaining"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
#: src/template-tags/tickets.php:
|
1109 |
msgctxt "ticket stock message (pending stock)"
|
1110 |
msgid "%1$d Awaiting Review"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: src/template-tags/tickets.php:
|
1114 |
msgctxt "ticket stock message (cancelled stock)"
|
1115 |
msgid "%1$d Cancelled"
|
1116 |
msgstr ""
|
@@ -1241,49 +1268,49 @@ msgstr ""
|
|
1241 |
msgid "Update %s"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
-
#: src/views/tickets/rsvp.php:
|
1245 |
msgctxt "form heading"
|
1246 |
msgid "RSVP"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: src/views/tickets/rsvp.php:
|
1250 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
1251 |
msgstr ""
|
1252 |
|
1253 |
-
#: src/views/tickets/rsvp.php:
|
1254 |
msgid "%1$s out of %2$s available"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
-
#: src/views/tickets/rsvp.php:
|
1258 |
msgid "Out of stock!"
|
1259 |
msgstr ""
|
1260 |
|
1261 |
-
#: src/views/tickets/rsvp.php:
|
1262 |
msgid "Send RSVP confirmation to:"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: src/views/tickets/rsvp.php:
|
1266 |
msgid "Full Name"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: src/views/tickets/rsvp.php:
|
1270 |
msgctxt "order status label"
|
1271 |
msgid "RSVP"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: src/views/tickets/rsvp.php:
|
1275 |
msgid "Don't list me on the public attendee list"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
-
#: src/views/tickets/rsvp.php:
|
1279 |
msgid "Login to RSVP"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: src/views/tickets/rsvp.php:
|
1283 |
msgid "Confirm RSVP"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
-
#: src/views/tickets/rsvp.php:
|
1287 |
msgid ""
|
1288 |
"You must have JavaScript activated to purchase tickets. Please enable "
|
1289 |
"JavaScript in your browser."
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Event Tickets 4.5dev1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
+
"POT-Creation-Date: 2017-06-15 16:28:24+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-06-15 16:28\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
224 |
msgstr ""
|
225 |
|
226 |
#: src/Tribe/Attendees_Table.php:490
|
227 |
+
#: src/admin-views/admin-welcome-message.php:36 src/views/tickets/rsvp.php:134
|
228 |
msgid "Email"
|
229 |
msgstr ""
|
230 |
|
304 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: src/Tribe/Main.php:441
|
308 |
msgid "Support for Event Tickets"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: src/Tribe/Main.php:443
|
312 |
msgid "Settings overview"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: src/Tribe/Main.php:444
|
316 |
msgid "Features overview"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: src/Tribe/Main.php:445
|
320 |
msgid "Troubleshooting common problems"
|
321 |
msgstr ""
|
322 |
|
323 |
+
#: src/Tribe/Main.php:446
|
324 |
msgid "Customizing Event Tickets"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: src/Tribe/Main.php:463
|
328 |
msgid "New User Primer"
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: src/Tribe/Main.php:465
|
332 |
msgid ""
|
333 |
"We are committed to helping you sell tickets for your event. Check out our "
|
334 |
"handy %s to get started."
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: src/Tribe/Main.php:482
|
338 |
msgid "open-source forum on WordPress.org"
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: src/Tribe/Main.php:483
|
342 |
msgid ""
|
343 |
"If you have tried the above steps and are still having trouble, you can post "
|
344 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
345 |
"and would be happy to assist you there."
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: src/Tribe/Main.php:485
|
349 |
msgid "premium support on our website"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: src/Tribe/Main.php:486
|
353 |
msgid "Events Tickets Plus"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: src/Tribe/Main.php:487
|
357 |
msgid ""
|
358 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
359 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
360 |
"directly and expect a response within 24-48 hours during weekdays."
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: src/Tribe/Main.php:489 src/Tribe/Main.php:494
|
364 |
msgid "post a thread"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: src/Tribe/Main.php:490
|
368 |
msgid ""
|
369 |
"Already have Events Tickets Plus? You can %s in our premium support forums. "
|
370 |
"Our support team monitors the forums and will respond to your thread within "
|
371 |
"24-48 hours (during the week)."
|
372 |
msgstr ""
|
373 |
|
374 |
+
#: src/Tribe/Main.php:495
|
375 |
msgid ""
|
376 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
377 |
"premium support forums. Our support team monitors the forums and will "
|
378 |
"respond to your thread within 24-48 hours (during the week)."
|
379 |
msgstr ""
|
380 |
|
381 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.5dev1) #-#-#-#-#
|
382 |
#. Plugin Name of the plugin/theme
|
383 |
+
#: src/Tribe/Main.php:509
|
384 |
msgid "Event Tickets"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: src/Tribe/Main.php:596
|
388 |
msgid "Welcome to Event Tickets"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: src/Tribe/Main.php:731
|
392 |
msgid "Buy"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: src/Tribe/Main.php:731
|
396 |
msgctxt "button text"
|
397 |
msgid "RSVP"
|
398 |
msgstr ""
|
434 |
msgid "Not Going:"
|
435 |
msgstr ""
|
436 |
|
437 |
+
#: src/Tribe/RSVP.php:163
|
438 |
msgctxt "ticket provider"
|
439 |
msgid "RSVP"
|
440 |
msgstr ""
|
441 |
|
442 |
+
#: src/Tribe/RSVP.php:241
|
443 |
msgctxt "Attendee number"
|
444 |
msgid "Attendee %1$s"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: src/Tribe/RSVP.php:279
|
448 |
msgid "RSVP Tickets"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: src/Tribe/RSVP.php:280
|
452 |
msgid "RSVP Ticket"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: src/Tribe/RSVP.php:712
|
456 |
msgid "Your tickets from %s"
|
457 |
msgstr ""
|
458 |
|
459 |
+
#: src/Tribe/RSVP.php:743
|
460 |
msgid "You confirmed you will not be attending %s"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: src/Tribe/RSVP.php:967
|
464 |
msgid ""
|
465 |
"Your RSVP has been received! Check your email for your RSVP confirmation."
|
466 |
msgstr ""
|
467 |
|
468 |
+
#: src/Tribe/RSVP.php:973
|
469 |
msgid "You can't RSVP more than the total remaining tickets."
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: src/Tribe/RSVP.php:978
|
473 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: src/Tribe/RSVP.php:1222
|
477 |
msgid "(deleted)"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: src/Tribe/RSVP.php:1513
|
481 |
msgid "Return to the %1$sAttendees Report%2$s."
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/RSVP.php:1520
|
485 |
msgid "Post updated. %1$s"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/RSVP.php:1524
|
489 |
msgid "Post published. %1$s"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: src/Tribe/RSVP.php:1527
|
493 |
msgid "Post submitted."
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: src/Tribe/RSVP.php:1528
|
497 |
msgid "Post scheduled."
|
498 |
msgstr ""
|
499 |
|
500 |
+
#: src/Tribe/RSVP.php:1529
|
501 |
msgid "Post draft updated."
|
502 |
msgstr ""
|
503 |
|
504 |
+
#: src/Tribe/Tickets.php:469
|
505 |
msgid "Your ticket has been saved."
|
506 |
msgstr ""
|
507 |
|
508 |
+
#: src/Tribe/Tickets.php:647
|
509 |
msgid "Your ticket has been deleted."
|
510 |
msgstr ""
|
511 |
|
512 |
+
#: src/Tribe/Tickets.php:701
|
513 |
msgid "Editing the ticket price is currently disallowed."
|
514 |
msgstr ""
|
515 |
|
516 |
+
#: src/Tribe/Tickets.php:986
|
517 |
msgid "Use global stock"
|
518 |
msgstr ""
|
519 |
|
520 |
+
#: src/Tribe/Tickets.php:987
|
521 |
msgid "Use global stock but cap sales"
|
522 |
msgstr ""
|
523 |
|
524 |
+
#: src/Tribe/Tickets.php:988
|
525 |
msgid "Independent (do not use global stock)"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: src/Tribe/Tickets.php:1573
|
529 |
msgid "Tickets are not available as this %s has passed."
|
530 |
msgstr ""
|
531 |
|
532 |
+
#: src/Tribe/Tickets.php:1575
|
533 |
msgid "Tickets are not yet available."
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: src/Tribe/Tickets.php:1577
|
537 |
msgid "Tickets are no longer available."
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: src/Tribe/Tickets.php:1579
|
541 |
msgid "There are no tickets available at this time."
|
542 |
msgstr ""
|
543 |
|
1078 |
"General Settings admin screen) before adjusting this setting."
|
1079 |
msgstr ""
|
1080 |
|
1081 |
+
#: src/template-tags/tickets.php:185
|
1082 |
+
msgctxt "list view stock sold out"
|
1083 |
+
msgid "Sold out"
|
1084 |
+
msgstr ""
|
1085 |
+
|
1086 |
+
#: src/template-tags/tickets.php:197
|
1087 |
+
msgid "%s spot left"
|
1088 |
+
msgid_plural "%s spots left"
|
1089 |
+
msgstr[0] ""
|
1090 |
+
msgstr[1] ""
|
1091 |
+
|
1092 |
+
#: src/template-tags/tickets.php:199
|
1093 |
+
msgid "%s ticket left"
|
1094 |
+
msgid_plural "%s tickets left"
|
1095 |
+
msgstr[0] ""
|
1096 |
+
msgstr[1] ""
|
1097 |
+
|
1098 |
+
#: src/template-tags/tickets.php:208
|
1099 |
+
msgctxt "list view rsvp now ticket button"
|
1100 |
+
msgid "RSVP Now!"
|
1101 |
+
msgstr ""
|
1102 |
+
|
1103 |
+
#: src/template-tags/tickets.php:211
|
1104 |
+
msgctxt "list view buy now ticket button"
|
1105 |
+
msgid "Buy Now!"
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: src/template-tags/tickets.php:368
|
1109 |
msgid "global inventory"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
+
#: src/template-tags/tickets.php:371
|
1113 |
msgid "Sold"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
+
#: src/template-tags/tickets.php:373
|
1117 |
msgctxt "separate going and remain RSVPs"
|
1118 |
msgid "RSVP'd Going"
|
1119 |
msgstr ""
|
1120 |
|
1121 |
+
#: src/template-tags/tickets.php:378
|
1122 |
msgid "%s %d"
|
1123 |
msgstr ""
|
1124 |
|
1125 |
+
#: src/template-tags/tickets.php:384
|
1126 |
msgctxt "ticket global stock message (remaining stock)"
|
1127 |
msgid "%1$d Remaining of the global stock"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: src/template-tags/tickets.php:386
|
1131 |
msgctxt "ticket stock message (remaining stock)"
|
1132 |
msgid "%1$d Remaining"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: src/template-tags/tickets.php:389
|
1136 |
msgctxt "ticket stock message (pending stock)"
|
1137 |
msgid "%1$d Awaiting Review"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
+
#: src/template-tags/tickets.php:391
|
1141 |
msgctxt "ticket stock message (cancelled stock)"
|
1142 |
msgid "%1$d Cancelled"
|
1143 |
msgstr ""
|
1268 |
msgid "Update %s"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: src/views/tickets/rsvp.php:32
|
1272 |
msgctxt "form heading"
|
1273 |
msgid "RSVP"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: src/views/tickets/rsvp.php:50
|
1277 |
msgid "Please fill in the RSVP confirmation name and email fields."
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: src/views/tickets/rsvp.php:84
|
1281 |
msgid "%1$s out of %2$s available"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
+
#: src/views/tickets/rsvp.php:88
|
1285 |
msgid "Out of stock!"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: src/views/tickets/rsvp.php:114
|
1289 |
msgid "Send RSVP confirmation to:"
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: src/views/tickets/rsvp.php:126
|
1293 |
msgid "Full Name"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
+
#: src/views/tickets/rsvp.php:143
|
1297 |
msgctxt "order status label"
|
1298 |
msgid "RSVP"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
+
#: src/views/tickets/rsvp.php:159
|
1302 |
msgid "Don't list me on the public attendee list"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: src/views/tickets/rsvp.php:171
|
1306 |
msgid "Login to RSVP"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: src/views/tickets/rsvp.php:180
|
1310 |
msgid "Confirm RSVP"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: src/views/tickets/rsvp.php:189
|
1314 |
msgid ""
|
1315 |
"You must have JavaScript activated to purchase tickets. Please enable "
|
1316 |
"JavaScript in your browser."
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
Contributors: ModernTribe, aguseo, borkweb, barry.hughes, bordoni, brianjessee, brook-tribe, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, leahkoerper, lucatume, mastromktg, mat-lipe, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, shelbelliott, tribecari, vicskf, zbtirrell
|
4 |
Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
|
5 |
Requires at least: 3.9
|
|
|
6 |
Tested up to: 4.8
|
7 |
-
Stable tag: 4.4.10
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -233,6 +233,17 @@ The plugin is produced by [Modern Tribe Inc](http://m.tri.be/18uc).
|
|
233 |
|
234 |
== Changelog ==
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
= [4.4.10] 2017-06-14 =
|
237 |
|
238 |
* Fix - Allow importing of RSVP tickets with sale dates, even when time is not specified [77608]
|
3 |
Contributors: ModernTribe, aguseo, borkweb, barry.hughes, bordoni, brianjessee, brook-tribe, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, leahkoerper, lucatume, mastromktg, mat-lipe, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, shelbelliott, tribecari, vicskf, zbtirrell
|
4 |
Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
|
5 |
Requires at least: 3.9
|
6 |
+
Stable tag: 4.5
|
7 |
Tested up to: 4.8
|
|
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
233 |
|
234 |
== Changelog ==
|
235 |
|
236 |
+
= [4.5] 2017-06-22 =
|
237 |
+
|
238 |
+
* Feature - Show remaining ticket count, buy now or rsvp now buttons in list views of The Events Calendar [71092 & 71094]
|
239 |
+
* Feature - An API to get ticket, attendee, event, and order infomation from a post id for RSVP, EDD, and WooCommerce Tickets [74363]
|
240 |
+
* Fix - Resolved issue where the Meta Chunker attempted to inappropriately chunk meta for post post_types [80857]
|
241 |
+
* Fix - Resolve Thunderbird for Windows rendering of Tickets email
|
242 |
+
* Tweak - Added filters: `tribe_tickets_buy_button`
|
243 |
+
* Tweak - Changed views: `tickets/rsvp`, `tickets/email`
|
244 |
+
* Language - 5 new strings added, 65 updated, 0 fuzzied, and 0 obsoleted [event-tickets]
|
245 |
+
* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted [tribe-common]
|
246 |
+
|
247 |
= [4.4.10] 2017-06-14 =
|
248 |
|
249 |
* Fix - Allow importing of RSVP tickets with sale dates, even when time is not specified [77608]
|
src/Tribe/Data_API.php
ADDED
@@ -0,0 +1,475 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class to connect ticketing infomation requests with ticket provider
|
6 |
+
*
|
7 |
+
* Class Tribe__Tickets__Data_API
|
8 |
+
*/
|
9 |
+
class Tribe__Tickets__Data_API {
|
10 |
+
|
11 |
+
protected $active_modules;
|
12 |
+
protected $ticket_types = array();
|
13 |
+
protected $ticket_class = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* Class constructor
|
17 |
+
*/
|
18 |
+
public function __construct() {
|
19 |
+
$this->active_modules = Tribe__Tickets__Tickets::modules();
|
20 |
+
$this->setup_data();
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Setup activate ticket classes and field for data api
|
25 |
+
*/
|
26 |
+
protected function setup_data() {
|
27 |
+
|
28 |
+
foreach ( Tribe__Tickets__Tickets::modules() as $module_class => $module_instance ) {
|
29 |
+
|
30 |
+
/**
|
31 |
+
* The usage of plain `$module_class::ATTENDEE_EVENT_KEY` will throw a `T_PAAMAYIM_NEKUDOTAYIM`
|
32 |
+
* when using PHP 5.2, which is a fatal.
|
33 |
+
*
|
34 |
+
* So we have to construct the constant name using a string and use the `constant` function.
|
35 |
+
*/
|
36 |
+
$types['order'] = constant( "$module_class::ORDER_OBJECT" );
|
37 |
+
$types['product'] = $module_class::get_instance()->ticket_object;
|
38 |
+
$types['ticket'] = constant( "$module_class::ATTENDEE_OBJECT" );
|
39 |
+
if ( 'Tribe__Tickets__RSVP' === $module_class ) {
|
40 |
+
$types['ticket'] = $module_class::get_instance()->ticket_object;
|
41 |
+
}
|
42 |
+
$types['attendee'] = constant( "$module_class::ATTENDEE_OBJECT" );
|
43 |
+
|
44 |
+
$this->ticket_class[ $module_class ] = array();
|
45 |
+
|
46 |
+
foreach ( $types as $key => $value ) {
|
47 |
+
|
48 |
+
$this->ticket_types[ $key ][] = $value;
|
49 |
+
$this->ticket_class[ $module_class ][ $key ] = $value;
|
50 |
+
|
51 |
+
}
|
52 |
+
if ( 'Tribe__Tickets_Plus__Commerce__EDD__Main' === $module_class ) {
|
53 |
+
$this->ticket_class[ $module_class ]['tribe_for_event'] = $module_class::$event_key;
|
54 |
+
} else {
|
55 |
+
$this->ticket_class[ $module_class ]['tribe_for_event'] = $module_class::get_instance()->event_key;
|
56 |
+
}
|
57 |
+
|
58 |
+
$this->ticket_class[ $module_class ]['event_id_key'] = constant( "$module_class::ATTENDEE_EVENT_KEY" );
|
59 |
+
$this->ticket_class[ $module_class ]['order_id_key'] = constant( "$module_class::ATTENDEE_ORDER_KEY" );
|
60 |
+
}
|
61 |
+
|
62 |
+
$this->ticket_types['events'][] = class_exists( 'Tribe__Events__Main' ) ? Tribe__Events__Main::POSTTYPE : '';
|
63 |
+
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* Detect what is available in the custom post type by the id passed to it
|
68 |
+
*
|
69 |
+
* @param null $post id or post object
|
70 |
+
*
|
71 |
+
* @return array|bool array includes infomation available and the tribe_tickets_tickets class to use
|
72 |
+
*/
|
73 |
+
public function detect_by_id( $post = null ) {
|
74 |
+
|
75 |
+
// only the rsvp order key is non numeric
|
76 |
+
if ( is_object( $post ) && ! empty( $post->ID ) ) {
|
77 |
+
$post = (int) $post->ID;
|
78 |
+
$cpt = get_post_type( $post->ID );
|
79 |
+
} elseif ( ! is_numeric( $post ) ) {
|
80 |
+
$post = esc_attr( $post );
|
81 |
+
$cpt = $this->check_rsvp_order_key_exists( $post );
|
82 |
+
} else {
|
83 |
+
$post = absint( $post );
|
84 |
+
$cpt = get_post_type( $post );
|
85 |
+
}
|
86 |
+
|
87 |
+
// if no custom post type
|
88 |
+
if ( ! $cpt ) {
|
89 |
+
return false;
|
90 |
+
}
|
91 |
+
|
92 |
+
$cpt_arr = array();
|
93 |
+
$cpt_arr['post_type'] = $cpt;
|
94 |
+
|
95 |
+
foreach ( $this->ticket_types as $type => $cpts ) {
|
96 |
+
if ( in_array( $cpt, $cpts ) ) {
|
97 |
+
$cpt_arr[] = $type;
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
foreach ( $this->ticket_class as $classes => $cpts ) {
|
102 |
+
if ( in_array( $cpt, $cpts ) ) {
|
103 |
+
$cpt_arr['class'] = $classes;
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
return $cpt_arr;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Return Array of Event IDs when passed an Order, Ticket, or Attendee ID
|
112 |
+
*
|
113 |
+
* @param $post_id
|
114 |
+
*
|
115 |
+
* @return array
|
116 |
+
*/
|
117 |
+
public function get_event_ids( $post_id ) {
|
118 |
+
$services = $this->detect_by_id( $post_id );
|
119 |
+
if ( ! is_array( $services ) ) {
|
120 |
+
$services = array();
|
121 |
+
}
|
122 |
+
|
123 |
+
// if this id is not an order id or a ticket id return
|
124 |
+
$is_ticket_related = array_intersect( array( 'order', 'ticket', 'attendee', 'product' ), $services );
|
125 |
+
if ( ! $is_ticket_related ) {
|
126 |
+
return array();
|
127 |
+
}
|
128 |
+
|
129 |
+
// if no post type or module class return
|
130 |
+
if ( empty( $services['post_type'] ) || empty( $services['class'] ) ) {
|
131 |
+
return array();
|
132 |
+
}
|
133 |
+
|
134 |
+
$module_class = $services['class'];
|
135 |
+
|
136 |
+
/**
|
137 |
+
* if we have a rsvp order with a unique rsvp order key
|
138 |
+
* change $post_id to the first rsvp post's id
|
139 |
+
*/
|
140 |
+
if ( ! is_numeric( $post_id ) && 'Tribe__Tickets__RSVP' === $module_class ) {
|
141 |
+
$post_id = $this->get_rsvp_post_id_from_order_key( $post_id );
|
142 |
+
}
|
143 |
+
$event_id_key = $this->ticket_class[ $module_class ]['event_id_key'];
|
144 |
+
$event_ids = array();
|
145 |
+
|
146 |
+
$is_product = array_intersect( array( 'product' ), $services );
|
147 |
+
if ( $is_product ) {
|
148 |
+
$tribe_for_event = $this->ticket_class[ $module_class ]['tribe_for_event'];
|
149 |
+
$event_ids[] = (int) get_post_meta( $post_id, $tribe_for_event, true );
|
150 |
+
|
151 |
+
return $event_ids;
|
152 |
+
}
|
153 |
+
|
154 |
+
|
155 |
+
// if rsvp or a ticket id get the connected id field
|
156 |
+
$is_ticket_attendee = array_intersect( array( 'ticket', 'attendee' ), $services );
|
157 |
+
if ( 'Tribe__Tickets__RSVP' === $module_class || $is_ticket_attendee ) {
|
158 |
+
$event_ids[] = (int) get_post_meta( $post_id, $event_id_key, true );
|
159 |
+
|
160 |
+
return $event_ids;
|
161 |
+
}
|
162 |
+
|
163 |
+
$ticket_cpt = $this->ticket_class[ $module_class ]['ticket'];
|
164 |
+
$order_id_key = $this->ticket_class[ $module_class ]['order_id_key'];
|
165 |
+
|
166 |
+
if ( ! $order_id_key ) {
|
167 |
+
return array();
|
168 |
+
}
|
169 |
+
|
170 |
+
$order_tickets = get_posts( array(
|
171 |
+
'post_type' => $ticket_cpt,
|
172 |
+
'meta_key' => $order_id_key,
|
173 |
+
'meta_value' => $post_id,
|
174 |
+
'posts_per_page' => - 1,
|
175 |
+
) );
|
176 |
+
|
177 |
+
foreach ( $order_tickets as $ticket ) {
|
178 |
+
|
179 |
+
$event_id = get_post_meta( $ticket->ID, $event_id_key, true );
|
180 |
+
|
181 |
+
if ( ! in_array( $event_id, $event_ids ) ) {
|
182 |
+
$event_ids[] = (int) $event_id;
|
183 |
+
}
|
184 |
+
}
|
185 |
+
|
186 |
+
return $event_ids;
|
187 |
+
}
|
188 |
+
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Return Ticket Provider by Order, Product, Attendee, or Ticket ID
|
192 |
+
*
|
193 |
+
* @param $post_id
|
194 |
+
*
|
195 |
+
* @return bool/object
|
196 |
+
*/
|
197 |
+
public function get_ticket_provider( $post_id ) {
|
198 |
+
$services = $this->detect_by_id( $post_id );
|
199 |
+
|
200 |
+
// if no module class return
|
201 |
+
if ( empty( $services['class'] ) || ! class_exists( $services['class'] ) ) {
|
202 |
+
return false;
|
203 |
+
}
|
204 |
+
|
205 |
+
return $services['class']::get_instance();
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Get attendee(s) by id
|
210 |
+
*
|
211 |
+
* @param $post_id
|
212 |
+
* @param null $context
|
213 |
+
*
|
214 |
+
* @return mixed
|
215 |
+
*/
|
216 |
+
public function get_attendees_by_id( $post_id, $context = null ) {
|
217 |
+
return $this->get_attendees( $post_id, $context );
|
218 |
+
}
|
219 |
+
|
220 |
+
/**
|
221 |
+
* Return if attendee(s) have meta fields with data
|
222 |
+
*
|
223 |
+
* @param $post_id
|
224 |
+
* @param null $context
|
225 |
+
*
|
226 |
+
* @return bool
|
227 |
+
*/
|
228 |
+
public function attendees_has_meta_data( $post_id, $context = null ) {
|
229 |
+
$attendees = $this->get_attendees( $post_id, $context );
|
230 |
+
if ( ! is_array( $attendees ) ) {
|
231 |
+
return false;
|
232 |
+
}
|
233 |
+
|
234 |
+
return $this->attendees_meta_check( false, $attendees );
|
235 |
+
}
|
236 |
+
|
237 |
+
/**
|
238 |
+
* Return if tickets have meta fields
|
239 |
+
*
|
240 |
+
* @param $post_id
|
241 |
+
* @param null $context
|
242 |
+
*
|
243 |
+
* @return bool
|
244 |
+
*/
|
245 |
+
public function ticket_has_meta_fields( $post_id, $context = null ) {
|
246 |
+
$services = $this->detect_by_id( $post_id );
|
247 |
+
if ( ! is_array( $services ) ) {
|
248 |
+
$services = array();
|
249 |
+
}
|
250 |
+
|
251 |
+
$has_meta_fields = false;
|
252 |
+
$products = '';
|
253 |
+
|
254 |
+
// if no class then look for tickets by event/post id
|
255 |
+
if ( ! isset( $services['class'] ) ) {
|
256 |
+
$products = $this->get_product_ids_from_tickets( Tribe__Tickets__Tickets::get_all_event_tickets( $post_id ) );
|
257 |
+
}
|
258 |
+
|
259 |
+
// if no product ids and id is not ticket related return false
|
260 |
+
$is_ticket_related = array_intersect( array( 'order', 'ticket', 'attendee', 'product' ), $services );
|
261 |
+
if ( ! $products && ! $is_ticket_related ) {
|
262 |
+
return false;
|
263 |
+
}
|
264 |
+
|
265 |
+
// if the id is a product add the id to the array
|
266 |
+
$is_product = array_intersect( array( 'product' ), $services );
|
267 |
+
if ( ! $products && $is_product ) {
|
268 |
+
$products[] = absint( $post_id );
|
269 |
+
}
|
270 |
+
|
271 |
+
//elseif handle order id ticket&attendee
|
272 |
+
$is_order_ticket_attendee = array_intersect( array( 'order', 'ticket', 'attendee' ), $services );
|
273 |
+
if ( ! $products && $is_order_ticket_attendee ) {
|
274 |
+
$products = $this->get_product_ids_from_attendees( $this->get_attendees( $post_id, $context, $services ) );
|
275 |
+
}
|
276 |
+
|
277 |
+
if ( is_array( $products ) ) {
|
278 |
+
$has_meta_fields = $this->check_for_meta_fields_by_product_id( $products );
|
279 |
+
}
|
280 |
+
|
281 |
+
return $has_meta_fields;
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Return an array of product ids from an array of ticket objects
|
286 |
+
*
|
287 |
+
* @param $tickets array an array of ticket objects
|
288 |
+
*
|
289 |
+
* @return array
|
290 |
+
*/
|
291 |
+
protected function get_product_ids_from_tickets( $tickets ) {
|
292 |
+
$product_ids = array();
|
293 |
+
foreach ( $tickets as $ticket ) {
|
294 |
+
if ( isset( $ticket->ID ) && ! in_array( $ticket->ID, $product_ids ) ) {
|
295 |
+
$product_ids[] = $ticket->ID;
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
return $product_ids;
|
300 |
+
}
|
301 |
+
|
302 |
+
/**
|
303 |
+
* Return an array of product ids from an array of attendee(s)
|
304 |
+
*
|
305 |
+
* @param $attendees array an array of attendee(s)
|
306 |
+
*
|
307 |
+
* @return array
|
308 |
+
*/
|
309 |
+
protected function get_product_ids_from_attendees( $attendees ) {
|
310 |
+
$product_ids = array();
|
311 |
+
foreach ( $attendees as $attendee ) {
|
312 |
+
if ( isset( $attendee['product_id'] ) && ! in_array( $attendee['product_id'], $product_ids ) ) {
|
313 |
+
$product_ids[] = $attendee['product_id'];
|
314 |
+
}
|
315 |
+
}
|
316 |
+
|
317 |
+
return $product_ids;
|
318 |
+
}
|
319 |
+
|
320 |
+
/**
|
321 |
+
* Return true if meta enabled and fields are
|
322 |
+
*
|
323 |
+
* @param $products array an array of product ids
|
324 |
+
*
|
325 |
+
* @return bool
|
326 |
+
*/
|
327 |
+
protected function check_for_meta_fields_by_product_id( $products ) {
|
328 |
+
$has_meta_fields = false;
|
329 |
+
foreach ( $products as $product_id ) {
|
330 |
+
$meta_enabled = get_post_meta( $product_id, '_tribe_tickets_meta_enabled', true );
|
331 |
+
$meta_fields = get_post_meta( $product_id, '_tribe_tickets_meta', true );
|
332 |
+
if ( $meta_enabled && $meta_fields ) {
|
333 |
+
$has_meta_fields = true;
|
334 |
+
}
|
335 |
+
}
|
336 |
+
|
337 |
+
return $has_meta_fields;
|
338 |
+
}
|
339 |
+
|
340 |
+
/**
|
341 |
+
* Get attendee(s) from any id
|
342 |
+
*
|
343 |
+
* @param $post_id
|
344 |
+
* @param $context
|
345 |
+
*
|
346 |
+
* @return mixed
|
347 |
+
*/
|
348 |
+
protected function get_attendees( $post_id, $context, $services = false ) {
|
349 |
+
if ( ! $services ) {
|
350 |
+
$services = $this->detect_by_id( $post_id );
|
351 |
+
}
|
352 |
+
|
353 |
+
/**
|
354 |
+
* if a post id is passed with rsvp order context
|
355 |
+
* get the order key to return all attendees by the key
|
356 |
+
*/
|
357 |
+
if ( 'rsvp_order' === $context && is_numeric( $post_id ) ) {
|
358 |
+
$post_id = $this->get_rsvp_order_key( $post_id );
|
359 |
+
}
|
360 |
+
|
361 |
+
// if no provider class, use the passed id to return attendee(s)
|
362 |
+
if ( ! isset( $services['class'] ) && is_numeric( $post_id ) ) {
|
363 |
+
return Tribe__Tickets__Tickets::get_event_attendees( $post_id );
|
364 |
+
} elseif ( ! isset( $services['class'] ) && ! is_numeric( $post_id ) ) {
|
365 |
+
return array();
|
366 |
+
}
|
367 |
+
|
368 |
+
return $services['class']::get_instance()->get_attendees_by_id( $post_id, $services['post_type'] );
|
369 |
+
|
370 |
+
}
|
371 |
+
|
372 |
+
/**
|
373 |
+
* Check if attendee(s) have meta data
|
374 |
+
*
|
375 |
+
* @param $has_meta
|
376 |
+
* @param $attendees
|
377 |
+
* @param $has_meta_fields
|
378 |
+
*
|
379 |
+
* @return bool
|
380 |
+
*/
|
381 |
+
protected function attendees_meta_check( $has_meta, $attendees ) {
|
382 |
+
foreach ( $attendees as $attendee ) {
|
383 |
+
if ( isset( $attendee['attendee_meta'] ) && ! empty( $attendee['attendee_meta'] ) ) {
|
384 |
+
$has_meta = true;
|
385 |
+
}
|
386 |
+
}
|
387 |
+
|
388 |
+
return $has_meta;
|
389 |
+
}
|
390 |
+
|
391 |
+
|
392 |
+
/**
|
393 |
+
* Check if a order key passed exists and return attendee object name
|
394 |
+
*
|
395 |
+
* @param $order_key
|
396 |
+
*
|
397 |
+
* @return string
|
398 |
+
*/
|
399 |
+
protected function check_rsvp_order_key_exists( $order_key ) {
|
400 |
+
|
401 |
+
$attendees_query = $this->query_by_rsvp_order_key( $order_key );
|
402 |
+
if ( ! $attendees_query->have_posts() ) {
|
403 |
+
return '';
|
404 |
+
}
|
405 |
+
|
406 |
+
return Tribe__Tickets__RSVP::ATTENDEE_OBJECT;
|
407 |
+
}
|
408 |
+
|
409 |
+
/**
|
410 |
+
* Get the rsvp order key from a post id
|
411 |
+
*
|
412 |
+
* @param $post_id
|
413 |
+
*
|
414 |
+
* @return mixed
|
415 |
+
*/
|
416 |
+
protected function get_rsvp_order_key( $post_id ) {
|
417 |
+
$order_key = get_post_meta( $post_id, Tribe__Tickets__RSVP::get_instance()->order_key, true );
|
418 |
+
if ( ! $order_key ) {
|
419 |
+
return $post_id;
|
420 |
+
}
|
421 |
+
|
422 |
+
return $order_key;
|
423 |
+
}
|
424 |
+
|
425 |
+
/**
|
426 |
+
* Get a post id when passing a rsvp order key
|
427 |
+
* Since all rsvp orders will be from one post,
|
428 |
+
* we only need to return the first match
|
429 |
+
*
|
430 |
+
* @param $order_key
|
431 |
+
*
|
432 |
+
* @return false|int|string
|
433 |
+
*/
|
434 |
+
protected function get_rsvp_post_id_from_order_key( $order_key ) {
|
435 |
+
$attendees_query = $this->query_by_rsvp_order_key( $order_key, 1 );
|
436 |
+
if ( ! $attendees_query->have_posts() ) {
|
437 |
+
return '';
|
438 |
+
}
|
439 |
+
|
440 |
+
$post_id = '';
|
441 |
+
|
442 |
+
while ( $attendees_query->have_posts() ) {
|
443 |
+
$attendees_query->the_post();
|
444 |
+
$post_id = get_the_ID();
|
445 |
+
}
|
446 |
+
|
447 |
+
wp_reset_postdata();
|
448 |
+
|
449 |
+
return $post_id;
|
450 |
+
}
|
451 |
+
|
452 |
+
|
453 |
+
/**
|
454 |
+
* Query RSVP Orders by the Order Key
|
455 |
+
*
|
456 |
+
* @param $order_key
|
457 |
+
* @param string $post_per_page
|
458 |
+
*
|
459 |
+
* @return WP_Query
|
460 |
+
*/
|
461 |
+
protected function query_by_rsvp_order_key( $order_key, $post_per_page = '-1' ) {
|
462 |
+
$attendees_query = new WP_Query( array(
|
463 |
+
'posts_per_page' => $post_per_page,
|
464 |
+
'post_type' => Tribe__Tickets__RSVP::ATTENDEE_OBJECT,
|
465 |
+
'meta_key' => Tribe__Tickets__RSVP::get_instance()->order_key,
|
466 |
+
'meta_value' => esc_attr( $order_key ),
|
467 |
+
'orderby' => 'ID',
|
468 |
+
'order' => 'ASC',
|
469 |
+
) );
|
470 |
+
|
471 |
+
return $attendees_query;
|
472 |
+
}
|
473 |
+
|
474 |
+
}
|
475 |
+
|
src/Tribe/Main.php
CHANGED
@@ -5,17 +5,17 @@ class Tribe__Tickets__Main {
|
|
5 |
/**
|
6 |
* Current version of this plugin
|
7 |
*/
|
8 |
-
const VERSION = '4.
|
9 |
|
10 |
/**
|
11 |
* Min required The Events Calendar version
|
12 |
*/
|
13 |
-
const MIN_TEC_VERSION = '4.
|
14 |
|
15 |
/**
|
16 |
* Min required version of Tribe Common
|
17 |
*/
|
18 |
-
const MIN_COMMON_VERSION = '4.
|
19 |
|
20 |
/**
|
21 |
* Name of the provider
|
@@ -331,6 +331,9 @@ class Tribe__Tickets__Main {
|
|
331 |
add_filter( 'tribe_support_registered_template_systems', array( $this, 'add_template_updates_check' ) );
|
332 |
add_action( 'plugins_loaded', array( 'Tribe__Support', 'getInstance' ) );
|
333 |
|
|
|
|
|
|
|
334 |
// Hook to oembeds
|
335 |
add_action( 'tribe_events_embed_after_the_cost_value', array( $this, 'inject_buy_button_into_oembed' ) );
|
336 |
add_action( 'embed_head', array( $this, 'embed_head' ) );
|
@@ -371,6 +374,9 @@ class Tribe__Tickets__Main {
|
|
371 |
tribe_singleton( 'tickets.query', 'Tribe__Tickets__Query', array( 'hook' ) );
|
372 |
tribe( 'tickets.query' );
|
373 |
|
|
|
|
|
|
|
374 |
// View links, columns and screen options
|
375 |
if ( is_admin() ) {
|
376 |
tribe_singleton( 'tickets.admin.views', 'Tribe__Tickets__Admin__Views', array( 'hook' ) );
|
@@ -411,16 +417,17 @@ class Tribe__Tickets__Main {
|
|
411 |
*/
|
412 |
public function add_linking_archor() {
|
413 |
_deprecated_function( __METHOD__, '4.4.8', 'Tribe__Tickets__Main::add_linking_anchor' );
|
414 |
-
$this->add_linking_anchor();
|
415 |
}
|
416 |
|
417 |
/**
|
418 |
* Prints a div with an ID that can be used to link to the ticket form location.
|
419 |
*
|
420 |
* The height is specified inline to ensure this works x-browser.
|
|
|
|
|
421 |
*/
|
422 |
public function add_linking_anchor() {
|
423 |
-
|
424 |
}
|
425 |
|
426 |
/**
|
5 |
/**
|
6 |
* Current version of this plugin
|
7 |
*/
|
8 |
+
const VERSION = '4.5';
|
9 |
|
10 |
/**
|
11 |
* Min required The Events Calendar version
|
12 |
*/
|
13 |
+
const MIN_TEC_VERSION = '4.5.6';
|
14 |
|
15 |
/**
|
16 |
* Min required version of Tribe Common
|
17 |
*/
|
18 |
+
const MIN_COMMON_VERSION = '4.5.6';
|
19 |
|
20 |
/**
|
21 |
* Name of the provider
|
331 |
add_filter( 'tribe_support_registered_template_systems', array( $this, 'add_template_updates_check' ) );
|
332 |
add_action( 'plugins_loaded', array( 'Tribe__Support', 'getInstance' ) );
|
333 |
|
334 |
+
// Setup Front End Display
|
335 |
+
add_action( 'tribe_events_inside_cost', 'tribe_tickets_buy_button', 10, 0 );
|
336 |
+
|
337 |
// Hook to oembeds
|
338 |
add_action( 'tribe_events_embed_after_the_cost_value', array( $this, 'inject_buy_button_into_oembed' ) );
|
339 |
add_action( 'embed_head', array( $this, 'embed_head' ) );
|
374 |
tribe_singleton( 'tickets.query', 'Tribe__Tickets__Query', array( 'hook' ) );
|
375 |
tribe( 'tickets.query' );
|
376 |
|
377 |
+
// Tribe Data API Init
|
378 |
+
tribe_singleton( 'tickets.data_api', 'Tribe__Tickets__Data_API' );
|
379 |
+
|
380 |
// View links, columns and screen options
|
381 |
if ( is_admin() ) {
|
382 |
tribe_singleton( 'tickets.admin.views', 'Tribe__Tickets__Admin__Views', array( 'hook' ) );
|
417 |
*/
|
418 |
public function add_linking_archor() {
|
419 |
_deprecated_function( __METHOD__, '4.4.8', 'Tribe__Tickets__Main::add_linking_anchor' );
|
|
|
420 |
}
|
421 |
|
422 |
/**
|
423 |
* Prints a div with an ID that can be used to link to the ticket form location.
|
424 |
*
|
425 |
* The height is specified inline to ensure this works x-browser.
|
426 |
+
*
|
427 |
+
* @deprecated 4.6
|
428 |
*/
|
429 |
public function add_linking_anchor() {
|
430 |
+
_deprecated_function( __METHOD__, '4.5' );
|
431 |
}
|
432 |
|
433 |
/**
|
src/Tribe/RSVP.php
CHANGED
@@ -8,6 +8,11 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
8 |
*/
|
9 |
const ATTENDEE_OBJECT = 'tribe_rsvp_attendees';
|
10 |
|
|
|
|
|
|
|
|
|
|
|
11 |
/**
|
12 |
* Meta key that relates Attendees and Events.
|
13 |
*
|
@@ -651,7 +656,10 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
651 |
}
|
652 |
|
653 |
public function send_tickets_email( $order_id ) {
|
654 |
-
|
|
|
|
|
|
|
655 |
$to_send = array();
|
656 |
|
657 |
if ( empty( $all_attendees ) ) {
|
@@ -714,7 +722,8 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
714 |
* @param int $event_id
|
715 |
*/
|
716 |
public function send_non_attendance_confirmation( $order_id, $event_id ) {
|
717 |
-
|
|
|
718 |
|
719 |
if ( empty( $attendees ) ) {
|
720 |
return;
|
@@ -742,38 +751,6 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
742 |
wp_mail( $to, $subject, $content, $headers, $attachments );
|
743 |
}
|
744 |
|
745 |
-
protected function get_attendees_by_transaction( $order_id ) {
|
746 |
-
$attendees = array();
|
747 |
-
$query = new WP_Query( array(
|
748 |
-
'post_type' => self::ATTENDEE_OBJECT,
|
749 |
-
'meta_key' => $this->order_key,
|
750 |
-
'meta_value' => $order_id,
|
751 |
-
'posts_per_page' => - 1,
|
752 |
-
) );
|
753 |
-
|
754 |
-
foreach ( $query->posts as $post ) {
|
755 |
-
$product = get_post( get_post_meta( $post->ID, self::ATTENDEE_PRODUCT_KEY, true ) );
|
756 |
-
$ticket_unique_id = get_post_meta( $post->ID, '_unique_id', true );
|
757 |
-
$ticket_unique_id = $ticket_unique_id === '' ? $post->ID : $ticket_unique_id;
|
758 |
-
|
759 |
-
$attendees[] = array(
|
760 |
-
'event_id' => get_post_meta( $post->ID, self::ATTENDEE_EVENT_KEY, true ),
|
761 |
-
'product_id' => ! empty( $product ) ? $product->ID : false,
|
762 |
-
'ticket_name' => ! empty( $product ) ? $product->post_title : false,
|
763 |
-
'holder_name' => get_post_meta( $post->ID, $this->full_name, true ),
|
764 |
-
'holder_email' => get_post_meta( $post->ID, $this->email, true ),
|
765 |
-
'order_id' => $order_id,
|
766 |
-
'ticket_id' => $ticket_unique_id,
|
767 |
-
'qr_ticket_id' => $post->ID,
|
768 |
-
'security_code' => get_post_meta( $post->ID, $this->security_code, true ),
|
769 |
-
'optout' => (bool) get_post_meta( $post->ID, self::ATTENDEE_OPTOUT_KEY, true ),
|
770 |
-
'ticket_sent' => (bool) get_post_meta( $post->ID, self::ATTENDEE_TICKET_SENT, true ),
|
771 |
-
);
|
772 |
-
}
|
773 |
-
|
774 |
-
return $attendees;
|
775 |
-
}
|
776 |
-
|
777 |
/**
|
778 |
* Generates the validation code that will be printed in the ticket.
|
779 |
* It purpose is to be used to validate the ticket at the door of an event.
|
@@ -912,7 +889,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
912 |
}
|
913 |
|
914 |
//Store name so we can still show it in the attendee list
|
915 |
-
$attendees = $this->
|
916 |
$post_to_delete = get_post( $ticket_id );
|
917 |
|
918 |
foreach ( (array) $attendees as $attendee ) {
|
@@ -1087,7 +1064,123 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1087 |
}
|
1088 |
|
1089 |
/**
|
1090 |
-
* Get
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1091 |
* following fields:
|
1092 |
*
|
1093 |
* order_id
|
@@ -1102,23 +1195,12 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1102 |
* check_in
|
1103 |
* provider
|
1104 |
*
|
1105 |
-
* @param $
|
|
|
1106 |
*
|
1107 |
* @return array
|
1108 |
*/
|
1109 |
-
protected function get_attendees( $
|
1110 |
-
$attendees_query = new WP_Query( array(
|
1111 |
-
'posts_per_page' => - 1,
|
1112 |
-
'post_type' => self::ATTENDEE_OBJECT,
|
1113 |
-
'meta_key' => self::ATTENDEE_EVENT_KEY,
|
1114 |
-
'meta_value' => $event_id,
|
1115 |
-
'orderby' => 'ID',
|
1116 |
-
'order' => 'DESC',
|
1117 |
-
) );
|
1118 |
-
|
1119 |
-
if ( ! $attendees_query->have_posts() ) {
|
1120 |
-
return array();
|
1121 |
-
}
|
1122 |
|
1123 |
$attendees = array();
|
1124 |
|
@@ -1139,21 +1221,44 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1139 |
$product = get_post( $product_id );
|
1140 |
$product_title = ( ! empty( $product ) ) ? $product->post_title : get_post_meta( $attendee->ID, $this->deleted_product, true ) . ' ' . __( '(deleted)', 'event-tickets' );
|
1141 |
|
1142 |
-
$
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1157 |
|
1158 |
/**
|
1159 |
* Allow users to filter the Attendee Data
|
@@ -1161,10 +1266,10 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1161 |
* @var array An associative array with the Information of the Attendee
|
1162 |
* @var string What Provider is been used
|
1163 |
* @var WP_Post Attendee Object
|
1164 |
-
* @var int
|
1165 |
*
|
1166 |
*/
|
1167 |
-
$attendee_data = apply_filters( 'tribe_tickets_attendee_data', $attendee_data, 'rsvp', $attendee, $
|
1168 |
|
1169 |
$attendees[] = $attendee_data;
|
1170 |
}
|
8 |
*/
|
9 |
const ATTENDEE_OBJECT = 'tribe_rsvp_attendees';
|
10 |
|
11 |
+
/**
|
12 |
+
* Name of the CPT that holds Orders
|
13 |
+
*/
|
14 |
+
const ORDER_OBJECT = 'tribe_rsvp_attendees';
|
15 |
+
|
16 |
/**
|
17 |
* Meta key that relates Attendees and Events.
|
18 |
*
|
656 |
}
|
657 |
|
658 |
public function send_tickets_email( $order_id ) {
|
659 |
+
|
660 |
+
|
661 |
+
$all_attendees = $this->get_attendees_by_id( $order_id );
|
662 |
+
|
663 |
$to_send = array();
|
664 |
|
665 |
if ( empty( $all_attendees ) ) {
|
722 |
* @param int $event_id
|
723 |
*/
|
724 |
public function send_non_attendance_confirmation( $order_id, $event_id ) {
|
725 |
+
|
726 |
+
$attendees = $this->get_attendees_by_id( $order_id );
|
727 |
|
728 |
if ( empty( $attendees ) ) {
|
729 |
return;
|
751 |
wp_mail( $to, $subject, $content, $headers, $attachments );
|
752 |
}
|
753 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
754 |
/**
|
755 |
* Generates the validation code that will be printed in the ticket.
|
756 |
* It purpose is to be used to validate the ticket at the door of an event.
|
889 |
}
|
890 |
|
891 |
//Store name so we can still show it in the attendee list
|
892 |
+
$attendees = $this->get_attendees_by_id( $event_id );
|
893 |
$post_to_delete = get_post( $ticket_id );
|
894 |
|
895 |
foreach ( (array) $attendees as $attendee ) {
|
1064 |
}
|
1065 |
|
1066 |
/**
|
1067 |
+
* Get attendees by id and associated post type
|
1068 |
+
* or default to using $post_id
|
1069 |
+
*
|
1070 |
+
* @param $post_id
|
1071 |
+
* @param null $post_type
|
1072 |
+
*
|
1073 |
+
* @return array|mixed
|
1074 |
+
*/
|
1075 |
+
public function get_attendees_by_id( $post_id, $post_type = null ) {
|
1076 |
+
|
1077 |
+
// RSVP Orders are a unique hash
|
1078 |
+
if ( ! is_numeric( $post_id ) ) {
|
1079 |
+
$post_type = 'rsvp_order_hash';
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
if ( ! $post_type ) {
|
1083 |
+
$post_type = get_post_type( $post_id );
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
switch ( $post_type ) {
|
1087 |
+
|
1088 |
+
case self::ATTENDEE_OBJECT :
|
1089 |
+
|
1090 |
+
return $this->get_attendees_by_attendee_id( $post_id );
|
1091 |
+
|
1092 |
+
break;
|
1093 |
+
|
1094 |
+
case 'rsvp_order_hash' :
|
1095 |
+
|
1096 |
+
return $this->get_attendees_by_order_id( $post_id );
|
1097 |
+
|
1098 |
+
break;
|
1099 |
+
default :
|
1100 |
+
|
1101 |
+
return $this->get_attendees_by_post_id( $post_id );
|
1102 |
+
|
1103 |
+
break;
|
1104 |
+
}
|
1105 |
+
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
/**
|
1109 |
+
* Get RSVP Tickets Attendees for an Post by id
|
1110 |
+
*
|
1111 |
+
* @param $post_id
|
1112 |
+
*
|
1113 |
+
* @return array
|
1114 |
+
*/
|
1115 |
+
protected function get_attendees_by_post_id( $post_id ) {
|
1116 |
+
|
1117 |
+
$attendees_query = new WP_Query( array(
|
1118 |
+
'posts_per_page' => - 1,
|
1119 |
+
'post_type' => self::ATTENDEE_OBJECT,
|
1120 |
+
'meta_key' => self::ATTENDEE_EVENT_KEY,
|
1121 |
+
'meta_value' => $post_id,
|
1122 |
+
'orderby' => 'ID',
|
1123 |
+
'order' => 'ASC',
|
1124 |
+
) );
|
1125 |
+
|
1126 |
+
if ( ! $attendees_query->have_posts() ) {
|
1127 |
+
return array();
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
return $this->get_attendees( $attendees_query, $post_id );
|
1131 |
+
|
1132 |
+
}
|
1133 |
+
|
1134 |
+
/**
|
1135 |
+
* Get Attendees by ticket/attendee ID
|
1136 |
+
*
|
1137 |
+
* @param $attendee_id
|
1138 |
+
*
|
1139 |
+
* @return array
|
1140 |
+
*/
|
1141 |
+
protected function get_attendees_by_attendee_id( $attendee_id ) {
|
1142 |
+
|
1143 |
+
$attendees_query = new WP_Query( array(
|
1144 |
+
'p' => $attendee_id,
|
1145 |
+
'post_type' => self::ATTENDEE_OBJECT,
|
1146 |
+
) );
|
1147 |
+
|
1148 |
+
if ( ! $attendees_query->have_posts() ) {
|
1149 |
+
return array();
|
1150 |
+
}
|
1151 |
+
|
1152 |
+
return $this->get_attendees( $attendees_query, $attendee_id );
|
1153 |
+
|
1154 |
+
}
|
1155 |
+
|
1156 |
+
/**
|
1157 |
+
* Get attendees by order id
|
1158 |
+
*
|
1159 |
+
* @param $order_id
|
1160 |
+
*
|
1161 |
+
* @return array
|
1162 |
+
*/
|
1163 |
+
protected function get_attendees_by_order_id( $order_id ) {
|
1164 |
+
|
1165 |
+
$attendees_query = new WP_Query( array(
|
1166 |
+
'posts_per_page' => - 1,
|
1167 |
+
'post_type' => self::ATTENDEE_OBJECT,
|
1168 |
+
'meta_key' => $this->order_key,
|
1169 |
+
'meta_value' => esc_attr( $order_id ),
|
1170 |
+
'orderby' => 'ID',
|
1171 |
+
'order' => 'ASC',
|
1172 |
+
) );
|
1173 |
+
|
1174 |
+
if ( ! $attendees_query->have_posts() ) {
|
1175 |
+
return array();
|
1176 |
+
}
|
1177 |
+
|
1178 |
+
return $this->get_attendees( $attendees_query, $order_id );
|
1179 |
+
|
1180 |
+
}
|
1181 |
+
|
1182 |
+
/**
|
1183 |
+
* Get all the attendees for post type. It returns an array with the
|
1184 |
* following fields:
|
1185 |
*
|
1186 |
* order_id
|
1195 |
* check_in
|
1196 |
* provider
|
1197 |
*
|
1198 |
+
* @param $attendees_query
|
1199 |
+
* @param $post_id
|
1200 |
*
|
1201 |
* @return array
|
1202 |
*/
|
1203 |
+
protected function get_attendees( WP_Query $attendees_query, $post_id ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1204 |
|
1205 |
$attendees = array();
|
1206 |
|
1221 |
$product = get_post( $product_id );
|
1222 |
$product_title = ( ! empty( $product ) ) ? $product->post_title : get_post_meta( $attendee->ID, $this->deleted_product, true ) . ' ' . __( '(deleted)', 'event-tickets' );
|
1223 |
|
1224 |
+
$ticket_unique_id = get_post_meta( $attendee->ID, '_unique_id', true );
|
1225 |
+
$ticket_unique_id = $ticket_unique_id === '' ? $attendee->ID : $ticket_unique_id;
|
1226 |
+
|
1227 |
+
$meta = '';
|
1228 |
+
if ( class_exists( 'Tribe__Tickets_Plus__Meta' ) ) {
|
1229 |
+
$meta = get_post_meta( $attendee->ID, Tribe__Tickets_Plus__Meta::META_KEY, true );
|
1230 |
+
|
1231 |
+
// Process Meta to include value, slug, and label
|
1232 |
+
if ( ! empty( $meta ) ) {
|
1233 |
+
$meta = $this->process_attendee_meta( $product_id, $meta );
|
1234 |
+
}
|
1235 |
+
}
|
1236 |
+
|
1237 |
+
$attendee_data = array_merge( $this->get_order_data( $attendee->ID ), array(
|
1238 |
+
'optout' => $optout,
|
1239 |
+
'ticket' => $product_title,
|
1240 |
+
'attendee_id' => $attendee->ID,
|
1241 |
+
'security' => $security,
|
1242 |
+
'product_id' => $product_id,
|
1243 |
+
'check_in' => $checkin,
|
1244 |
+
'order_status' => $status,
|
1245 |
+
'order_status_label' => $status_label,
|
1246 |
+
'user_id' => $user_id,
|
1247 |
+
'ticket_sent' => $ticket_sent,
|
1248 |
+
|
1249 |
+
// Fields for Email Tickets
|
1250 |
+
'event_id' => get_post_meta( $attendee->ID, self::ATTENDEE_EVENT_KEY, true ),
|
1251 |
+
'ticket_name' => ! empty( $product ) ? $product->post_title : false,
|
1252 |
+
'holder_name' => get_post_meta( $attendee->ID, $this->full_name, true ),
|
1253 |
+
'holder_email' => get_post_meta( $attendee->ID, $this->email, true ),
|
1254 |
+
'order_id' => $attendee->ID,
|
1255 |
+
'ticket_id' => $ticket_unique_id,
|
1256 |
+
'qr_ticket_id' => $attendee->ID,
|
1257 |
+
'security_code' => $security,
|
1258 |
+
|
1259 |
+
// Attendee Meta
|
1260 |
+
'attendee_meta' => $meta,
|
1261 |
+
) );
|
1262 |
|
1263 |
/**
|
1264 |
* Allow users to filter the Attendee Data
|
1266 |
* @var array An associative array with the Information of the Attendee
|
1267 |
* @var string What Provider is been used
|
1268 |
* @var WP_Post Attendee Object
|
1269 |
+
* @var int Post ID
|
1270 |
*
|
1271 |
*/
|
1272 |
+
$attendee_data = apply_filters( 'tribe_tickets_attendee_data', $attendee_data, 'rsvp', $attendee, $post_id );
|
1273 |
|
1274 |
$attendees[] = $attendee_data;
|
1275 |
}
|
src/Tribe/Ticket_Object.php
CHANGED
@@ -400,6 +400,9 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
|
|
400 |
$this->stock = $value;
|
401 |
}
|
402 |
|
|
|
|
|
|
|
403 |
// return the new Stock
|
404 |
return $this->stock;
|
405 |
}
|
400 |
$this->stock = $value;
|
401 |
}
|
402 |
|
403 |
+
// if stock is negative, force it to 0
|
404 |
+
$this->stock = 0 >= $this->stock ? 0 : $this->stock;
|
405 |
+
|
406 |
// return the new Stock
|
407 |
return $this->stock;
|
408 |
}
|
src/Tribe/Tickets.php
CHANGED
@@ -238,15 +238,56 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
238 |
*/
|
239 |
abstract protected function get_tickets( $event_id );
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
/**
|
242 |
* Get all the attendees (sold tickets) for an event
|
|
|
243 |
* @abstract
|
244 |
*
|
245 |
-
* @param $
|
246 |
*
|
247 |
* @return mixed
|
248 |
*/
|
249 |
-
abstract protected function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
250 |
|
251 |
/**
|
252 |
* Mark an attendee as checked in
|
@@ -363,7 +404,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
363 |
$ticket_form_hook = $this->get_ticket_form_hook();
|
364 |
|
365 |
if ( ! empty( $ticket_form_hook ) ) {
|
366 |
-
add_action( $ticket_form_hook, array( Tribe__Tickets__Main::instance(), 'add_linking_anchor' ), 4 );
|
367 |
add_action( $ticket_form_hook, array( $this, 'front_end_tickets_form' ), 5 );
|
368 |
}
|
369 |
|
@@ -739,7 +779,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
739 |
if ( false === $attendees_from_cache && empty( $attendees ) ) {
|
740 |
foreach ( self::modules() as $class => $module ) {
|
741 |
$obj = call_user_func( array( $class, 'get_instance' ) );
|
742 |
-
$attendees = array_merge( $attendees, $obj->
|
743 |
}
|
744 |
|
745 |
// Set the `ticket_exists` flag on attendees if the ticket they are associated with
|
@@ -779,7 +819,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
779 |
* @return array
|
780 |
*/
|
781 |
public function get_attendees_array( $event_id ) {
|
782 |
-
return $this->
|
783 |
}
|
784 |
|
785 |
/**
|
@@ -969,6 +1009,84 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
969 |
self::$frontend_ticket_data += $tickets;
|
970 |
}
|
971 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
972 |
/**
|
973 |
* Takes any global stock data and makes it available via a wp_localize_script() call.
|
974 |
*/
|
@@ -1198,9 +1316,11 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1198 |
}
|
1199 |
|
1200 |
/**
|
1201 |
-
* Given a valid order ID, returns
|
1202 |
* if it cannot be determined.
|
1203 |
*
|
|
|
|
|
1204 |
* @param int $order_id
|
1205 |
* @return mixed int|bool
|
1206 |
*/
|
@@ -1305,6 +1425,56 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1305 |
return (string) $attendee_event_key;
|
1306 |
}
|
1307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1308 |
/**
|
1309 |
* Returns the meta key used to link ticket types with the base event.
|
1310 |
*
|
238 |
*/
|
239 |
abstract protected function get_tickets( $event_id );
|
240 |
|
241 |
+
/**
|
242 |
+
* Get attendees by id and associated post type
|
243 |
+
* or default to using $post_id
|
244 |
+
*
|
245 |
+
* @param $post_id
|
246 |
+
* @param null $post_type
|
247 |
+
*
|
248 |
+
* @return array|mixed
|
249 |
+
*/
|
250 |
+
abstract public function get_attendees_by_id( $post_id );
|
251 |
+
|
252 |
/**
|
253 |
* Get all the attendees (sold tickets) for an event
|
254 |
+
*
|
255 |
* @abstract
|
256 |
*
|
257 |
+
* @param $post_id
|
258 |
*
|
259 |
* @return mixed
|
260 |
*/
|
261 |
+
abstract protected function get_attendees_by_post_id( $post_id );
|
262 |
+
|
263 |
+
/**
|
264 |
+
* Get Attendees by ticket/attendee ID
|
265 |
+
*
|
266 |
+
* @param $attendee_id
|
267 |
+
*
|
268 |
+
* @return array
|
269 |
+
*/
|
270 |
+
abstract protected function get_attendees_by_attendee_id( $attendee_id );
|
271 |
+
|
272 |
+
/**
|
273 |
+
* Get attendees by order id
|
274 |
+
*
|
275 |
+
* @param $order_id
|
276 |
+
*
|
277 |
+
* @return array
|
278 |
+
*/
|
279 |
+
abstract protected function get_attendees_by_order_id( $order_id );
|
280 |
+
|
281 |
+
|
282 |
+
/**
|
283 |
+
* Get attendees from provided query
|
284 |
+
*
|
285 |
+
* @param WP_Query $attendees_query
|
286 |
+
* @param $post_id
|
287 |
+
*
|
288 |
+
* @return mixed
|
289 |
+
*/
|
290 |
+
abstract protected function get_attendees( WP_Query $attendees_query, $post_id );
|
291 |
|
292 |
/**
|
293 |
* Mark an attendee as checked in
|
404 |
$ticket_form_hook = $this->get_ticket_form_hook();
|
405 |
|
406 |
if ( ! empty( $ticket_form_hook ) ) {
|
|
|
407 |
add_action( $ticket_form_hook, array( $this, 'front_end_tickets_form' ), 5 );
|
408 |
}
|
409 |
|
779 |
if ( false === $attendees_from_cache && empty( $attendees ) ) {
|
780 |
foreach ( self::modules() as $class => $module ) {
|
781 |
$obj = call_user_func( array( $class, 'get_instance' ) );
|
782 |
+
$attendees = array_merge( $attendees, $obj->get_attendees_by_post_id( $event_id ) );
|
783 |
}
|
784 |
|
785 |
// Set the `ticket_exists` flag on attendees if the ticket they are associated with
|
819 |
* @return array
|
820 |
*/
|
821 |
public function get_attendees_array( $event_id ) {
|
822 |
+
return $this->get_attendees_by_post_id( $event_id );
|
823 |
}
|
824 |
|
825 |
/**
|
1009 |
self::$frontend_ticket_data += $tickets;
|
1010 |
}
|
1011 |
|
1012 |
+
/**
|
1013 |
+
* Returns Ticket and RSVP Count for an Event
|
1014 |
+
*
|
1015 |
+
* @param $event_id
|
1016 |
+
*
|
1017 |
+
* @return array
|
1018 |
+
*/
|
1019 |
+
public static function get_ticket_counts( $event_id ) {
|
1020 |
+
|
1021 |
+
$tickets = self::get_all_event_tickets( $event_id );
|
1022 |
+
|
1023 |
+
// if no tickets or rsvp return empty array
|
1024 |
+
if ( ! $tickets ) {
|
1025 |
+
return array();
|
1026 |
+
}
|
1027 |
+
|
1028 |
+
/**
|
1029 |
+
* This order is important so we that tickets overwrite RSVP on
|
1030 |
+
* the Buy Now Button on the front-end
|
1031 |
+
*/
|
1032 |
+
$types['rsvp'] = array(
|
1033 |
+
'count' => 0,
|
1034 |
+
'stock' => 0,
|
1035 |
+
'unlimited' => 0,
|
1036 |
+
'available' => 0,
|
1037 |
+
);
|
1038 |
+
$types['tickets'] = array(
|
1039 |
+
'count' => 0, // count of tickets currently for sale
|
1040 |
+
'stock' => 0, // current stock of tickets available for sale
|
1041 |
+
'global' => 0, // global stock ticket
|
1042 |
+
'unlimited' => 0, // unlimited stock tickets
|
1043 |
+
'available' => 0, // are tickets available for sale right now
|
1044 |
+
);
|
1045 |
+
|
1046 |
+
foreach ( $tickets as $ticket ) {
|
1047 |
+
// If a ticket is not current for sale do not count it
|
1048 |
+
if ( ! tribe_events_ticket_is_on_sale( $ticket ) ) {
|
1049 |
+
continue;
|
1050 |
+
}
|
1051 |
+
|
1052 |
+
// if ticket and not rsvp add to ticket array
|
1053 |
+
if ( 'Tribe__Tickets__RSVP' !== $ticket->provider_class ) {
|
1054 |
+
$types['tickets']['count'] ++;
|
1055 |
+
|
1056 |
+
if ( Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $ticket->global_stock_mode() && 0 === $types['tickets']['global'] ) {
|
1057 |
+
$types['tickets']['global'] ++;
|
1058 |
+
} elseif ( Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $ticket->global_stock_mode() && 1 === $types['tickets']['global'] ) {
|
1059 |
+
continue;
|
1060 |
+
}
|
1061 |
+
|
1062 |
+
$types['tickets']['stock'] = $types['tickets']['stock'] + $ticket->stock;
|
1063 |
+
|
1064 |
+
if ( 0 !== $types['tickets']['stock'] ) {
|
1065 |
+
$types['tickets']['available'] ++;
|
1066 |
+
}
|
1067 |
+
|
1068 |
+
if ( ! $ticket->manage_stock() ) {
|
1069 |
+
$types['tickets']['unlimited'] ++;
|
1070 |
+
$types['tickets']['available'] ++;
|
1071 |
+
}
|
1072 |
+
} else {
|
1073 |
+
$types['rsvp']['count'] ++;
|
1074 |
+
|
1075 |
+
$types['rsvp']['stock'] = $types['rsvp']['stock'] + $ticket->stock;
|
1076 |
+
if ( 0 !== $types['rsvp']['stock'] ) {
|
1077 |
+
$types['rsvp']['available'] ++;
|
1078 |
+
}
|
1079 |
+
|
1080 |
+
if ( ! $ticket->manage_stock() ) {
|
1081 |
+
$types['rsvp']['unlimited'] ++;
|
1082 |
+
$types['rsvp']['available'] ++;
|
1083 |
+
}
|
1084 |
+
}
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
return $types;
|
1088 |
+
}
|
1089 |
+
|
1090 |
/**
|
1091 |
* Takes any global stock data and makes it available via a wp_localize_script() call.
|
1092 |
*/
|
1316 |
}
|
1317 |
|
1318 |
/**
|
1319 |
+
* Given a valid order ID, returns a single event ID it relates to or else boolean false
|
1320 |
* if it cannot be determined.
|
1321 |
*
|
1322 |
+
* @see Use tribe_tickets_get_event_ids() to return an array of all event ids for an order
|
1323 |
+
*
|
1324 |
* @param int $order_id
|
1325 |
* @return mixed int|bool
|
1326 |
*/
|
1425 |
return (string) $attendee_event_key;
|
1426 |
}
|
1427 |
|
1428 |
+
/**
|
1429 |
+
* Process the attendee meta into an array with value, slug, and label
|
1430 |
+
*
|
1431 |
+
* @param $product_id
|
1432 |
+
* @param $meta
|
1433 |
+
*
|
1434 |
+
* @return array
|
1435 |
+
*/
|
1436 |
+
public function process_attendee_meta( $product_id, $meta ) {
|
1437 |
+
|
1438 |
+
$meta_vals = array();
|
1439 |
+
|
1440 |
+
if ( ! class_exists( 'Tribe__Tickets_Plus__Main' ) ) {
|
1441 |
+
return $meta_vals;
|
1442 |
+
}
|
1443 |
+
|
1444 |
+
$meta_field_objs = Tribe__Tickets_Plus__Main::instance()->meta()->get_meta_fields_by_ticket( $product_id );
|
1445 |
+
|
1446 |
+
foreach ( $meta_field_objs as $field ) {
|
1447 |
+
$value = null;
|
1448 |
+
|
1449 |
+
if ( 'checkbox' === $field->type ) {
|
1450 |
+
$field_prefix = $field->slug . '_';
|
1451 |
+
$value = array();
|
1452 |
+
|
1453 |
+
foreach ( $meta as $full_key => $check_value ) {
|
1454 |
+
if ( 0 === strpos( $full_key, $field_prefix ) ) {
|
1455 |
+
$short_key = substr( $full_key, strlen( $field_prefix ) );
|
1456 |
+
$value[ $short_key ] = $check_value;
|
1457 |
+
}
|
1458 |
+
}
|
1459 |
+
|
1460 |
+
if ( empty( $value ) ) {
|
1461 |
+
$value = null;
|
1462 |
+
}
|
1463 |
+
} elseif ( isset( $meta[ $field->slug ] ) ) {
|
1464 |
+
$value = $meta[ $field->slug ];
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
$meta_vals[ $field->slug ] = array(
|
1468 |
+
'slug' => $field->slug,
|
1469 |
+
'label' => $field->label,
|
1470 |
+
'value' => $value,
|
1471 |
+
);
|
1472 |
+
}
|
1473 |
+
|
1474 |
+
return $meta_vals;
|
1475 |
+
|
1476 |
+
}
|
1477 |
+
|
1478 |
/**
|
1479 |
* Returns the meta key used to link ticket types with the base event.
|
1480 |
*
|
src/resources/css/rsvp.css
CHANGED
@@ -24,34 +24,6 @@
|
|
24 |
padding: 10px;
|
25 |
}
|
26 |
|
27 |
-
.tribe-events-tickets {
|
28 |
-
position: relative;
|
29 |
-
|
30 |
-
}
|
31 |
-
|
32 |
-
.tribe-events-tickets .tribe-link-tickets-message {
|
33 |
-
background: rgba(200, 200, 200, .8);
|
34 |
-
bottom: 0;
|
35 |
-
left: 0;
|
36 |
-
position: absolute;
|
37 |
-
right: 0;
|
38 |
-
text-align: center;
|
39 |
-
top: 0;
|
40 |
-
}
|
41 |
-
|
42 |
-
.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg {
|
43 |
-
left: 50%;
|
44 |
-
position: absolute;
|
45 |
-
top: 50%;
|
46 |
-
-webkit-transform: translate(-50%, -50%);
|
47 |
-
transform: translate(-50%, -50%);
|
48 |
-
width: 90%;
|
49 |
-
}
|
50 |
-
|
51 |
-
.tribe-events-tickets td {
|
52 |
-
padding: 8px 10px;
|
53 |
-
}
|
54 |
-
|
55 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,
|
56 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,
|
57 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,
|
@@ -104,6 +76,7 @@
|
|
104 |
}
|
105 |
|
106 |
.tribe-rsvp-list > .tribe-item {
|
|
|
107 |
padding: 20px;
|
108 |
border: 1px solid #ededed;
|
109 |
border-bottom: 0;
|
@@ -162,6 +135,7 @@
|
|
162 |
}
|
163 |
|
164 |
.tribe-answer .type-label {
|
|
|
165 |
padding-right: .5em;
|
166 |
}
|
167 |
|
@@ -172,6 +146,9 @@
|
|
172 |
.tribe-answer select {
|
173 |
background: white;
|
174 |
border: 1px solid #ddd;
|
|
|
|
|
|
|
175 |
}
|
176 |
|
177 |
.tribe-rsvp h2 {
|
@@ -207,118 +184,134 @@
|
|
207 |
box-shadow: none;
|
208 |
}
|
209 |
|
210 |
-
/* = Tickets Front End Styles
|
211 |
=============================================*/
|
212 |
|
213 |
-
|
214 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
215 |
}
|
216 |
|
217 |
-
|
|
|
|
|
218 |
background: #f8f8f8;
|
|
|
219 |
border-radius: 3px;
|
220 |
-
|
221 |
}
|
222 |
|
223 |
-
.tribe-tickets
|
224 |
-
.tribe-tickets
|
225 |
-
.tribe-tickets
|
|
|
226 |
border: 0;
|
227 |
}
|
228 |
|
229 |
-
.tribe-tickets
|
230 |
-
padding:
|
231 |
}
|
232 |
|
233 |
-
.tribe-tickets
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
border-bottom: 1px solid #dfdfdf;
|
235 |
-
display: block;
|
236 |
-
padding: 16px 10px 8px 10px;
|
237 |
}
|
238 |
|
239 |
-
.tribe-tickets
|
240 |
background-color: #fff;
|
241 |
border-radius: 3px;
|
242 |
margin-bottom: 5px;
|
243 |
padding: 5px 10px;
|
|
|
244 |
width: 4.375em;
|
245 |
}
|
246 |
|
247 |
-
.tribe-tickets
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
color: #777;
|
249 |
display: block;
|
250 |
font-size: 11px;
|
251 |
}
|
252 |
|
253 |
-
.tribe-tickets
|
254 |
color: #777;
|
255 |
font-size: 13px;
|
256 |
}
|
257 |
|
258 |
-
.tribe-tickets-
|
259 |
-
|
260 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
border-bottom: 1px solid #dfdfdf;
|
262 |
color: #464646;
|
263 |
font-size: 15px;
|
264 |
-
padding: 16px 10px
|
265 |
-
}
|
266 |
-
|
267 |
-
.tribe-events-
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
}
|
270 |
|
271 |
-
|
272 |
-
border: 0;
|
273 |
-
border-radius: 3px;
|
274 |
-
background: -webkit-linear-gradient( top, #009FF1, #0080DB);
|
275 |
-
background: linear-gradient( to bottom, #009FF1, #0080DB);
|
276 |
-
cursor: pointer;
|
277 |
-
color: #fff;
|
278 |
-
display: inline-block;
|
279 |
-
font-size: 14px;
|
280 |
-
font-weight: 400;
|
281 |
-
font-family: sans-serif;
|
282 |
-
letter-spacing: 1px;
|
283 |
-
line-height: 1;
|
284 |
height: auto;
|
285 |
-
margin-top: 16px;
|
286 |
-
margin-top: 1rem;
|
287 |
-
padding: 10px;
|
288 |
-
text-align: center;
|
289 |
-
-webkit-transition: all .15s ease-in-out;
|
290 |
-
transition: all .15s ease-in-out;
|
291 |
-
-webkit-font-smoothing: subpixel-antialiased;
|
292 |
}
|
293 |
|
294 |
-
|
295 |
-
*zoom: 1;
|
296 |
-
}
|
297 |
-
|
298 |
-
.clear:before,
|
299 |
-
.clear:after {
|
300 |
-
content: '';
|
301 |
-
display: table;
|
302 |
-
}
|
303 |
-
|
304 |
-
.clear:after {
|
305 |
-
clear: both;
|
306 |
-
}
|
307 |
|
308 |
-
.tribe-tickets-rsvp
|
309 |
-
|
310 |
-
|
311 |
-
.tribe-tickets-rsvp input[type="week"],
|
312 |
-
.tribe-tickets-rsvp input[type="month"],
|
313 |
-
.tribe-tickets-rsvp input[type="text"],
|
314 |
-
.tribe-tickets-rsvp input[type="email"],
|
315 |
-
.tribe-tickets-rsvp input[type="url"],
|
316 |
-
.tribe-tickets-rsvp input[type="password"],
|
317 |
-
.tribe-tickets-rsvp input[type="search"],
|
318 |
-
.tribe-tickets-rsvp input[type="tel"],
|
319 |
-
.tribe-tickets-rsvp input[type="number"],
|
320 |
-
.tribe-tickets-rsvp textarea,
|
321 |
-
.tribe-tickets-rsvp select {
|
322 |
-
background: #fff;
|
323 |
}
|
324 |
|
|
|
|
|
|
|
|
|
|
24 |
padding: 10px;
|
25 |
}
|
26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,
|
28 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,
|
29 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,
|
76 |
}
|
77 |
|
78 |
.tribe-rsvp-list > .tribe-item {
|
79 |
+
min-height: 105px;
|
80 |
padding: 20px;
|
81 |
border: 1px solid #ededed;
|
82 |
border-bottom: 0;
|
135 |
}
|
136 |
|
137 |
.tribe-answer .type-label {
|
138 |
+
margin-bottom: 0;
|
139 |
padding-right: .5em;
|
140 |
}
|
141 |
|
146 |
.tribe-answer select {
|
147 |
background: white;
|
148 |
border: 1px solid #ddd;
|
149 |
+
height: 30px;
|
150 |
+
line-height: 1;
|
151 |
+
margin-left: 5px;
|
152 |
}
|
153 |
|
154 |
.tribe-rsvp h2 {
|
184 |
box-shadow: none;
|
185 |
}
|
186 |
|
187 |
+
/* = Tickets & RSVP Modules Front End Styles
|
188 |
=============================================*/
|
189 |
|
190 |
+
/* Title */
|
191 |
+
|
192 |
+
.tribe-events-tickets-title.tribe--rsvp {
|
193 |
+
margin: 0;
|
194 |
+
}
|
195 |
+
|
196 |
+
.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title {
|
197 |
+
font-size: 90%;
|
198 |
}
|
199 |
|
200 |
+
/* Tickets Table */
|
201 |
+
|
202 |
+
.tribe-events-tickets {
|
203 |
background: #f8f8f8;
|
204 |
+
border: 0;
|
205 |
border-radius: 3px;
|
206 |
+
position: relative;
|
207 |
}
|
208 |
|
209 |
+
.tribe-events-tickets table,
|
210 |
+
.tribe-events-tickets th,
|
211 |
+
.tribe-events-tickets td,
|
212 |
+
.tribe-events-tickets .woocommerce.add-to-cart {
|
213 |
border: 0;
|
214 |
}
|
215 |
|
216 |
+
.tribe-events-tickets td {
|
217 |
+
padding: 8px 10px;
|
218 |
}
|
219 |
|
220 |
+
.tribe-events-tickets .woocommerce.add-to-cart {
|
221 |
+
padding: 16px;
|
222 |
+
}
|
223 |
+
|
224 |
+
.tribe-events-tickets .woocommerce,
|
225 |
+
.tribe-events-tickets .tickets_name,
|
226 |
+
.tribe-events-tickets .tickets_description,
|
227 |
+
.tribe-events-tickets .tickets_price {
|
228 |
border-bottom: 1px solid #dfdfdf;
|
|
|
|
|
229 |
}
|
230 |
|
231 |
+
.tribe-events-tickets .woocommerce .quantity input {
|
232 |
background-color: #fff;
|
233 |
border-radius: 3px;
|
234 |
margin-bottom: 5px;
|
235 |
padding: 5px 10px;
|
236 |
+
text-align: left;
|
237 |
width: 4.375em;
|
238 |
}
|
239 |
|
240 |
+
.tribe-events-tickets .tribe-link-tickets-message {
|
241 |
+
background: rgba(200, 200, 200, .8);
|
242 |
+
bottom: 0;
|
243 |
+
left: 0;
|
244 |
+
position: absolute;
|
245 |
+
right: 0;
|
246 |
+
text-align: center;
|
247 |
+
top: 0;
|
248 |
+
}
|
249 |
+
|
250 |
+
.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg {
|
251 |
+
left: 50%;
|
252 |
+
position: absolute;
|
253 |
+
top: 50%;
|
254 |
+
-webkit-transform: translate(-50%, -50%);
|
255 |
+
transform: translate(-50%, -50%);
|
256 |
+
width: 90%;
|
257 |
+
}
|
258 |
+
|
259 |
+
.tribe-events-tickets .tribe-tickets-remaining {
|
260 |
color: #777;
|
261 |
display: block;
|
262 |
font-size: 11px;
|
263 |
}
|
264 |
|
265 |
+
.tribe-events-tickets .tribe-tickets-attendees-list-optout label {
|
266 |
color: #777;
|
267 |
font-size: 13px;
|
268 |
}
|
269 |
|
270 |
+
.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type="radio"] + label,
|
271 |
+
.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type="checkbox"] + label {
|
272 |
+
display: inline-block;
|
273 |
+
}
|
274 |
+
|
275 |
+
.tribe-events-tickets .tickets_name,
|
276 |
+
.tribe-events-tickets .tickets_name p,
|
277 |
+
.tribe-events-tickets .tickets_description,
|
278 |
+
.tribe-events-tickets .tickets_price {
|
279 |
border-bottom: 1px solid #dfdfdf;
|
280 |
color: #464646;
|
281 |
font-size: 15px;
|
282 |
+
padding: 16px 10px;
|
283 |
+
}
|
284 |
+
|
285 |
+
.tribe-events-tickets input[type="date"],
|
286 |
+
.tribe-events-tickets input[type="time"],
|
287 |
+
.tribe-events-tickets input[type="datetime-local"],
|
288 |
+
.tribe-events-tickets input[type="week"],
|
289 |
+
.tribe-events-tickets input[type="month"],
|
290 |
+
.tribe-events-tickets input[type="text"],
|
291 |
+
.tribe-events-tickets input[type="email"],
|
292 |
+
.tribe-events-tickets input[type="url"],
|
293 |
+
.tribe-events-tickets input[type="password"],
|
294 |
+
.tribe-events-tickets input[type="search"],
|
295 |
+
.tribe-events-tickets input[type="tel"],
|
296 |
+
.tribe-events-tickets input[type="number"],
|
297 |
+
.tribe-events-tickets textarea,
|
298 |
+
.tribe-events-tickets select {
|
299 |
+
background: #fff;
|
300 |
}
|
301 |
|
302 |
+
.tribe-events-tickets header {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
303 |
height: auto;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
}
|
305 |
|
306 |
+
/* RSVP Table (differences only) */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
|
308 |
+
.tribe-events-tickets-rsvp .tribe-ticket.quantity {
|
309 |
+
border-bottom: 1px solid #dfdfdf;
|
310 |
+
width: 192px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
}
|
312 |
|
313 |
+
.tribe-events-tickets-rsvp .tribe-ticket.quantity input {
|
314 |
+
margin-bottom: 5px;
|
315 |
+
padding: 5px 10px;
|
316 |
+
width: 4.375em;
|
317 |
+
}
|
src/resources/css/rsvp.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-rsvp{padding:20px 0}.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp .tribe-tickets-meta-row{display:table-row}.tribe-tickets-attendee{padding:10px}.tribe-events-
|
1 |
+
.tribe-rsvp{padding:20px 0}.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp .tribe-tickets-meta-row{display:table-row}.tribe-tickets-attendee{padding:10px}.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,.tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-tickets .tribe-tickets-attendee tr{border:0}.tribe-rsvp-message-display .tribe-rsvp-messages{display:block}.tribe-rsvp-messages{display:none;padding:10px 10px 5px}.tribe-rsvp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-rsvp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-rsvp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-ticket-quantity{width:100%}.tickets-unavailable{font-style:italic}.tribe-rsvp-list{list-style:none;padding:0;margin:0}.tribe-rsvp-list>.tribe-item{min-height:105px;padding:20px;border:1px solid #ededed;border-bottom:0}.tribe-rsvp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-rsvp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-rsvp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-rsvp-list>.tribe-item .tribe-answer{float:right;display:inline-block}.tribe-rsvp-list>.tribe-item table{border:0;margin:0}.tribe-rsvp-list>.tribe-item td{border:0}.list-attendee{color:#999;display:inline-block;letter-spacing:1px;text-transform:uppercase}.tribe-submit-tickets-form{margin-top:20px}.user-details{margin:0 0 1.5em}.user-details p{margin:0 0 .5em}.tribe-answer{line-height:2}.tribe-answer .type-label{margin-bottom:0;padding-right:.5em}.tribe-answer label{display:block}.tribe-answer select{background:#fff;border:1px solid #ddd;height:30px;line-height:1;margin-left:5px}.tribe-rsvp h2{margin-bottom:20px;line-height:1.2}.event-tickets-meta-label{font-weight:700;margin:0 1em 0 0}.tribe-theme-parent-twentysixteen .comment-content a,.tribe-theme-parent-twentysixteen .entry-content a,.tribe-theme-parent-twentysixteen .entry-footer a:hover,.tribe-theme-parent-twentysixteen .entry-summary a,.tribe-theme-parent-twentysixteen .logged-in-as a,.tribe-theme-parent-twentysixteen .pingback .comment-body>a,.tribe-theme-parent-twentysixteen .site-info a:hover,.tribe-theme-parent-twentysixteen .taxonomy-description a,.tribe-theme-parent-twentysixteen .textwidget a,.tribe-theme-twentysixteen .comment-content a,.tribe-theme-twentysixteen .entry-content a,.tribe-theme-twentysixteen .entry-footer a:hover,.tribe-theme-twentysixteen .entry-summary a,.tribe-theme-twentysixteen .logged-in-as a,.tribe-theme-twentysixteen .pingback .comment-body>a,.tribe-theme-twentysixteen .site-info a:hover,.tribe-theme-twentysixteen .taxonomy-description a,.tribe-theme-twentysixteen .textwidget a{box-shadow:none}.tribe-events-tickets-title.tribe--rsvp{margin:0}.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title{font-size:90%}.tribe-events-tickets{background:#f8f8f8;border:0;border-radius:3px;position:relative}.tribe-events-tickets .woocommerce.add-to-cart,.tribe-events-tickets table,.tribe-events-tickets td,.tribe-events-tickets th{border:0}.tribe-events-tickets td{padding:8px 10px}.tribe-events-tickets .woocommerce.add-to-cart{padding:16px}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_price,.tribe-events-tickets .woocommerce{border-bottom:1px solid #dfdfdf}.tribe-events-tickets .woocommerce .quantity input{background-color:#fff;border-radius:3px;margin-bottom:5px;padding:5px 10px;text-align:left;width:4.375em}.tribe-events-tickets .tribe-link-tickets-message{background:hsla(0,0%,78%,.8);bottom:0;left:0;position:absolute;right:0;text-align:center;top:0}.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:90%}.tribe-events-tickets .tribe-tickets-remaining{color:#777;display:block;font-size:11px}.tribe-events-tickets .tribe-tickets-attendees-list-optout label{color:#777;font-size:13px}.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=checkbox]+label,.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=radio]+label{display:inline-block}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_name p,.tribe-events-tickets .tickets_price{border-bottom:1px solid #dfdfdf;color:#464646;font-size:15px;padding:16px 10px}.tribe-events-tickets input[type=date],.tribe-events-tickets input[type=datetime-local],.tribe-events-tickets input[type=email],.tribe-events-tickets input[type=month],.tribe-events-tickets input[type=number],.tribe-events-tickets input[type=password],.tribe-events-tickets input[type=search],.tribe-events-tickets input[type=tel],.tribe-events-tickets input[type=text],.tribe-events-tickets input[type=time],.tribe-events-tickets input[type=url],.tribe-events-tickets input[type=week],.tribe-events-tickets select,.tribe-events-tickets textarea{background:#fff}.tribe-events-tickets header{height:auto}.tribe-events-tickets-rsvp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf;width:192px}.tribe-events-tickets-rsvp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}
|
src/resources/js/frontend-ticket-form.js
CHANGED
@@ -287,4 +287,14 @@ var tribe_tickets_ticket_form = {};
|
|
287 |
$( function() {
|
288 |
my.init();
|
289 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
} )( jQuery, tribe_tickets_ticket_form );
|
287 |
$( function() {
|
288 |
my.init();
|
289 |
} );
|
290 |
+
|
291 |
+
// Listen for any clicks on an element in the document with the `link` class
|
292 |
+
$( document ).on( 'click', '.button-events-list', function( e ) {
|
293 |
+
// Prevent the default action (e.g. submit the form)
|
294 |
+
e.preventDefault();
|
295 |
+
|
296 |
+
// Get the URL specified in the form
|
297 |
+
var url = e.target.parentElement.action;
|
298 |
+
window.location = url;
|
299 |
+
} );
|
300 |
} )( jQuery, tribe_tickets_ticket_form );
|
src/resources/js/frontend-ticket-form.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_tickets_ticket_form={};!function(t,e){var _,c;e.init=function(){_=t(".tribe-events-tickets"),c=_.find(".quantity").find(".qty"),c.on("change",e.on_quantity_change)},e.on_quantity_change=function(){var _=t(this),c=e.get_matching_ticket_id(this);e.ticket_uses_global_stock(c)?e.global_stock_quantity_changed(_,c):e.normal_stock_quantity_changed(_,c)},e.global_stock_quantity_changed=function(t,_){var c=t.val(),i=e.get_event_id(_),
|
1 |
+
var tribe_tickets_ticket_form={};!function(t,e){var _,c;e.init=function(){_=t(".tribe-events-tickets"),c=_.find(".quantity").find(".qty"),c.on("change",e.on_quantity_change)},e.on_quantity_change=function(){var _=t(this),c=e.get_matching_ticket_id(this);e.ticket_uses_global_stock(c)?e.global_stock_quantity_changed(_,c):e.normal_stock_quantity_changed(_,c)},e.global_stock_quantity_changed=function(t,_){var c=t.val(),i=e.get_event_id(_),n=e.get_cap(_),a=e.get_global_stock(i),o=e.currently_requested_global_event_stock(i);o>a&&(c-=o-a),e.stock_mode_is_capped(_)&&c>n&&(c=n),0>=c&&(c=0),t.val(c),e.update_available_stock_counts(i)},e.normal_stock_quantity_changed=function(t,c){var i,n=t.val(),a=e.get_single_stock(c);n>a&&(n=a),t.val(n),i=a-n,_.find(".available-stock[data-product-id="+c+"]").html(i)},e.update_available_stock_counts=function(c){var i=e.get_tickets_of(c),n=e.get_global_stock(c)-e.currently_requested_global_event_stock(c);for(var a in i)if(i.hasOwnProperty(a)){n<0&&(n=0);var o=i[a];if("global"===o.mode&&_.find(".available-stock[data-product-id="+a+"]").html(n),"capped"===o.mode){var r=Math.min(n,o.cap),s=parseInt(t("[data-product-id="+a+"]").find("input").val(),10),d=o.cap-s;d<0?d=0:d>r&&(d=r),_.find(".available-stock[data-product-id="+a+"]").html(d)}}},e.get_matching_ticket_id=function(e){var _=t(e).closest("[data-product-id]");if(_.length)return _.data("product-id")},e.get_ticket_property=function(t,e){if("object"!=typeof tribe_tickets_stock_data)return!1;var _=tribe_tickets_stock_data.tickets[t];return"undefined"!==tribe_tickets_stock_data.tickets[t]&&_[e]},e.get_tickets_of=function(t){if("object"!=typeof tribe_tickets_stock_data)return!1;var e=[];for(var _ in tribe_tickets_stock_data.tickets){var c=tribe_tickets_stock_data.tickets[_];t===c.event_id&&(e[_]=c)}return e},e.currently_requested_global_event_stock=function(t){var c=0,i=e.get_tickets_of(t);for(var n in i)switch(tribe_tickets_stock_data.tickets[n].mode){case"global":case"capped":c+=parseInt(_.find("[data-product-id="+n+"]").find(".qty").val(),10)}return c},e.get_event_property=function(t,e){if("object"!=typeof tribe_tickets_stock_data)return!1;var _=tribe_tickets_stock_data.events[t];return"undefined"!==tribe_tickets_stock_data.events[t]&&_[e]},e.stock_mode_is_global=function(t){return"global"===e.get_mode(t)},e.stock_mode_is_capped=function(t){return"capped"===e.get_mode(t)},e.ticket_uses_global_stock=function(t){return e.stock_mode_is_capped(t)||e.stock_mode_is_global(t)},e.get_mode=function(t){return e.get_ticket_property(t,"mode")},e.get_event_id=function(t){return e.get_ticket_property(t,"event_id")},e.get_cap=function(t){return e.get_ticket_property(t,"cap")},e.get_global_stock=function(t){return e.get_event_property(t,"stock")},e.get_single_stock=function(t){return e.get_ticket_property(t,"stock")},t(function(){e.init()}),t(document).on("click",".button-events-list",function(t){t.preventDefault();var e=t.target.parentElement.action;window.location=e})}(jQuery,tribe_tickets_ticket_form);
|
src/resources/postcss/rsvp.pcss
CHANGED
@@ -1,3 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.tribe-rsvp {
|
2 |
padding: 20px 0;
|
3 |
}
|
@@ -14,33 +21,6 @@
|
|
14 |
padding: 10px;
|
15 |
}
|
16 |
|
17 |
-
.tribe-events-tickets {
|
18 |
-
position: relative;
|
19 |
-
|
20 |
-
.tribe-link-tickets-message {
|
21 |
-
background: rgba(200, 200, 200, .8);
|
22 |
-
bottom: 0;
|
23 |
-
left: 0;
|
24 |
-
position: absolute;
|
25 |
-
right: 0;
|
26 |
-
text-align: center;
|
27 |
-
top: 0;
|
28 |
-
|
29 |
-
.no-javascript-msg {
|
30 |
-
left: 50%;
|
31 |
-
position: absolute;
|
32 |
-
top: 50%;
|
33 |
-
transform: translate(-50%, -50%);
|
34 |
-
width: 90%;
|
35 |
-
}
|
36 |
-
}
|
37 |
-
|
38 |
-
}
|
39 |
-
|
40 |
-
.tribe-events-tickets td {
|
41 |
-
padding: 8px 10px;
|
42 |
-
}
|
43 |
-
|
44 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee,
|
45 |
.tribe-events-tickets .tribe-tickets-attendee {
|
46 |
table,
|
@@ -92,6 +72,7 @@
|
|
92 |
margin: 0;
|
93 |
|
94 |
> .tribe-item {
|
|
|
95 |
padding: 20px;
|
96 |
border: 1px solid #ededed;
|
97 |
border-bottom: 0;
|
@@ -150,14 +131,20 @@
|
|
150 |
line-height: 2;
|
151 |
|
152 |
.type-label {
|
|
|
153 |
padding-right: .5em;
|
154 |
}
|
|
|
155 |
label {
|
156 |
display: block;
|
157 |
}
|
|
|
158 |
select {
|
159 |
background: white;
|
160 |
border: 1px solid #ddd;
|
|
|
|
|
|
|
161 |
}
|
162 |
}
|
163 |
|
@@ -190,110 +177,111 @@
|
|
190 |
}
|
191 |
}
|
192 |
|
193 |
-
|
194 |
-
/* = Tickets Front End Styles
|
195 |
=============================================*/
|
196 |
|
197 |
-
|
198 |
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
|
209 |
table,
|
210 |
th,
|
211 |
-
td
|
|
|
212 |
border: 0;
|
213 |
}
|
214 |
|
215 |
-
|
216 |
-
padding:
|
217 |
}
|
218 |
|
219 |
-
.
|
220 |
-
|
221 |
-
display: block;
|
222 |
-
padding: 16px 10px 8px 10px;
|
223 |
-
|
224 |
-
input.tribe-ticket-quantity {
|
225 |
-
background-color: #fff;
|
226 |
-
border-radius: 3px;
|
227 |
-
margin-bottom: 5px;
|
228 |
-
padding: 5px 10px;
|
229 |
-
width: 4.375em;
|
230 |
-
}
|
231 |
}
|
232 |
|
233 |
-
.
|
234 |
-
|
235 |
-
|
236 |
-
|
|
|
237 |
}
|
238 |
|
239 |
-
.
|
240 |
-
|
241 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
242 |
}
|
243 |
|
244 |
-
.
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
}
|
253 |
|
254 |
-
.
|
255 |
-
|
256 |
-
|
|
|
|
|
|
|
|
|
257 |
}
|
258 |
-
}
|
259 |
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
background: linear-gradient( to bottom, #009FF1, #0080DB);
|
265 |
-
cursor: pointer;
|
266 |
-
color: #fff;
|
267 |
-
display: inline-block;
|
268 |
-
font-size: 14px;
|
269 |
-
font-weight: 400;
|
270 |
-
font-family: sans-serif;
|
271 |
-
letter-spacing: 1px;
|
272 |
-
line-height: 1;
|
273 |
-
height: auto;
|
274 |
-
margin-top: 1rem;
|
275 |
-
padding: 10px;
|
276 |
-
text-align: center;
|
277 |
-
transition: all .15s ease-in-out;
|
278 |
-
-webkit-font-smoothing: subpixel-antialiased;
|
279 |
}
|
280 |
-
}
|
281 |
|
282 |
-
.
|
283 |
-
|
|
|
|
|
|
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
}
|
290 |
|
291 |
-
|
292 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
}
|
294 |
-
}
|
295 |
|
296 |
-
.tribe-tickets-rsvp {
|
297 |
input[type="date"],
|
298 |
input[type="time"],
|
299 |
input[type="datetime-local"],
|
@@ -310,5 +298,24 @@
|
|
310 |
select {
|
311 |
background: #fff;
|
312 |
}
|
|
|
|
|
|
|
|
|
313 |
}
|
314 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
:root {
|
2 |
+
--text-light-color: #777;
|
3 |
+
--text-dark-color: #464646;
|
4 |
+
--border-color: #dfdfdf;
|
5 |
+
--table-background-color: #f8f8f8;
|
6 |
+
}
|
7 |
+
|
8 |
.tribe-rsvp {
|
9 |
padding: 20px 0;
|
10 |
}
|
21 |
padding: 10px;
|
22 |
}
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee,
|
25 |
.tribe-events-tickets .tribe-tickets-attendee {
|
26 |
table,
|
72 |
margin: 0;
|
73 |
|
74 |
> .tribe-item {
|
75 |
+
min-height: 105px;
|
76 |
padding: 20px;
|
77 |
border: 1px solid #ededed;
|
78 |
border-bottom: 0;
|
131 |
line-height: 2;
|
132 |
|
133 |
.type-label {
|
134 |
+
margin-bottom: 0;
|
135 |
padding-right: .5em;
|
136 |
}
|
137 |
+
|
138 |
label {
|
139 |
display: block;
|
140 |
}
|
141 |
+
|
142 |
select {
|
143 |
background: white;
|
144 |
border: 1px solid #ddd;
|
145 |
+
height: 30px;
|
146 |
+
line-height: 1;
|
147 |
+
margin-left: 5px;
|
148 |
}
|
149 |
}
|
150 |
|
177 |
}
|
178 |
}
|
179 |
|
180 |
+
/* = Tickets & RSVP Modules Front End Styles
|
|
|
181 |
=============================================*/
|
182 |
|
183 |
+
/* Title */
|
184 |
|
185 |
+
.tribe-events-tickets-title.tribe--rsvp {
|
186 |
+
margin: 0;
|
187 |
+
}
|
188 |
|
189 |
+
|
190 |
+
.tribe-events-style-full.tribe-events-style-theme {
|
191 |
+
h2.tribe-events-tickets-title {
|
192 |
+
font-size: 90%;
|
193 |
}
|
194 |
+
}
|
195 |
+
|
196 |
+
/* Tickets Table */
|
197 |
+
.tribe-events-tickets {
|
198 |
+
background: var(--table-background-color);
|
199 |
+
border: 0;
|
200 |
+
border-radius: 3px;
|
201 |
+
position: relative;
|
202 |
+
|
203 |
|
204 |
table,
|
205 |
th,
|
206 |
+
td,
|
207 |
+
.woocommerce.add-to-cart {
|
208 |
border: 0;
|
209 |
}
|
210 |
|
211 |
+
td {
|
212 |
+
padding: 8px 10px;
|
213 |
}
|
214 |
|
215 |
+
.woocommerce.add-to-cart {
|
216 |
+
padding: 16px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
}
|
218 |
|
219 |
+
.woocommerce,
|
220 |
+
.tickets_name,
|
221 |
+
.tickets_description,
|
222 |
+
.tickets_price {
|
223 |
+
border-bottom: 1px solid var(--border-color);
|
224 |
}
|
225 |
|
226 |
+
.woocommerce {
|
227 |
+
.quantity {
|
228 |
+
input {
|
229 |
+
background-color: #fff;
|
230 |
+
border-radius: 3px;
|
231 |
+
margin-bottom: 5px;
|
232 |
+
padding: 5px 10px;
|
233 |
+
text-align: left;
|
234 |
+
width: 4.375em;
|
235 |
+
}
|
236 |
+
}
|
237 |
}
|
238 |
|
239 |
+
.tribe-link-tickets-message {
|
240 |
+
background: rgba(200, 200, 200, .8);
|
241 |
+
bottom: 0;
|
242 |
+
left: 0;
|
243 |
+
position: absolute;
|
244 |
+
right: 0;
|
245 |
+
text-align: center;
|
246 |
+
top: 0;
|
|
|
247 |
|
248 |
+
.no-javascript-msg {
|
249 |
+
left: 50%;
|
250 |
+
position: absolute;
|
251 |
+
top: 50%;
|
252 |
+
transform: translate(-50%, -50%);
|
253 |
+
width: 90%;
|
254 |
+
}
|
255 |
}
|
|
|
256 |
|
257 |
+
.tribe-tickets-remaining {
|
258 |
+
color: var(--text-light-color);
|
259 |
+
display: block;
|
260 |
+
font-size: 11px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
}
|
|
|
262 |
|
263 |
+
.tribe-tickets-attendees-list-optout {
|
264 |
+
label {
|
265 |
+
color: var( --text-light-color );
|
266 |
+
font-size: 13px;
|
267 |
+
}
|
268 |
|
269 |
+
input[type="radio"] + label,
|
270 |
+
input[type="checkbox"] + label {
|
271 |
+
display: inline-block;
|
272 |
+
}
|
273 |
}
|
274 |
|
275 |
+
.tickets_name,
|
276 |
+
.tickets_name p,
|
277 |
+
.tickets_description,
|
278 |
+
.tickets_price {
|
279 |
+
border-bottom: 1px solid var(--border-color);
|
280 |
+
color: var(--text-dark-color);
|
281 |
+
font-size: 15px;
|
282 |
+
padding: 16px 10px;
|
283 |
}
|
|
|
284 |
|
|
|
285 |
input[type="date"],
|
286 |
input[type="time"],
|
287 |
input[type="datetime-local"],
|
298 |
select {
|
299 |
background: #fff;
|
300 |
}
|
301 |
+
|
302 |
+
header {
|
303 |
+
height: auto;
|
304 |
+
}
|
305 |
}
|
306 |
|
307 |
+
|
308 |
+
/* RSVP Table (differences only) */
|
309 |
+
.tribe-events-tickets-rsvp {
|
310 |
+
|
311 |
+
.tribe-ticket.quantity {
|
312 |
+
border-bottom: 1px solid var(--border-color);
|
313 |
+
width: 192px;
|
314 |
+
|
315 |
+
input {
|
316 |
+
margin-bottom: 5px;
|
317 |
+
padding: 5px 10px;
|
318 |
+
width: 4.375em;
|
319 |
+
}
|
320 |
+
}
|
321 |
+
}
|
src/template-tags/tickets.php
CHANGED
@@ -147,7 +147,110 @@ if ( ! function_exists( 'tribe_events_count_available_tickets' ) ) {
|
|
147 |
}
|
148 |
}//end if
|
149 |
|
150 |
-
if ( ! function_exists( '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
/**
|
152 |
* Returns true if the event contains one or more tickets which are not
|
153 |
* subject to any inventory limitations.
|
@@ -162,6 +265,7 @@ if ( ! function_exists( 'tribe_events_has_unlimited_stock_tickets' ) ) {
|
|
162 |
}
|
163 |
|
164 |
foreach ( Tribe__Tickets__Tickets::get_all_event_tickets( $event->ID ) as $ticket ) {
|
|
|
165 |
if ( Tribe__Tickets__Ticket_Object::UNLIMITED_STOCK === $ticket->stock() ) {
|
166 |
return true;
|
167 |
}
|
@@ -230,6 +334,25 @@ if ( ! function_exists( 'tribe_events_ticket_is_on_sale' ) ) {
|
|
230 |
}
|
231 |
}//end if
|
232 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
if ( ! function_exists( 'tribe_tickets_get_ticket_stock_message' ) ) {
|
234 |
/**
|
235 |
* Gets the "tickets sold" message for a given ticket
|
@@ -291,8 +414,6 @@ if ( ! function_exists( 'tribe_tickets_get_ticket_stock_message' ) ) {
|
|
291 |
}
|
292 |
|
293 |
$message = sprintf( '%1$d %2$s%3$s', absint( $sold ), esc_html( $sold_label ), esc_html( $status ) );
|
294 |
-
|
295 |
-
|
296 |
}
|
297 |
|
298 |
return $message;
|
@@ -483,7 +604,6 @@ function tribe_tickets_get_template_part( $slug, $name = null, array $data = nul
|
|
483 |
}
|
484 |
}
|
485 |
|
486 |
-
|
487 |
if ( ! function_exists( 'tribe_tickets_post_type_enabled' ) ) {
|
488 |
/**
|
489 |
* Returns whether or not the provided post type allows tickets to be attached
|
@@ -497,3 +617,76 @@ if ( ! function_exists( 'tribe_tickets_post_type_enabled' ) ) {
|
|
497 |
return in_array( $post_type, $post_types );
|
498 |
}
|
499 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
147 |
}
|
148 |
}//end if
|
149 |
|
150 |
+
if ( ! function_exists( 'tribe_tickets_buy_button' ) ) {
|
151 |
+
|
152 |
+
/**
|
153 |
+
* Echos Remaining Ticket Count and Purchase Buttons for an Event
|
154 |
+
*
|
155 |
+
* @since 4.5
|
156 |
+
*
|
157 |
+
* @param bool $echo Whether or not we should print
|
158 |
+
*
|
159 |
+
* @return string
|
160 |
+
*/
|
161 |
+
function tribe_tickets_buy_button( $echo = true ) {
|
162 |
+
$event_id = get_the_ID();
|
163 |
+
|
164 |
+
// check if there are any tickets on sale
|
165 |
+
if ( ! tribe_events_has_tickets_on_sale( $event_id ) ) {
|
166 |
+
return null;
|
167 |
+
}
|
168 |
+
|
169 |
+
// get an array for ticket and rsvp counts
|
170 |
+
$types = Tribe__Tickets__Tickets::get_ticket_counts( $event_id );
|
171 |
+
|
172 |
+
// if no rsvp or tickets return
|
173 |
+
if ( ! $types ) {
|
174 |
+
return null;
|
175 |
+
}
|
176 |
+
|
177 |
+
$html = array();
|
178 |
+
$parts = array();
|
179 |
+
|
180 |
+
// If we have tickets or RSVP, but everything is Sold Out then display the Sold Out message
|
181 |
+
foreach ( $types as $type => $data ) {
|
182 |
+
if ( ! $data['count'] ) {
|
183 |
+
continue;
|
184 |
+
}
|
185 |
+
|
186 |
+
if ( ! $data['available'] ) {
|
187 |
+
$parts[ $type . '-stock' ] = '<span class="tribe-out-of-stock">' . esc_html_x( 'Sold out', 'list view stock sold out', 'event-tickets' ) . '</span>';
|
188 |
+
|
189 |
+
// Only re-aply if we don't have a stock yet
|
190 |
+
if ( empty( $html['stock'] ) ) {
|
191 |
+
$html['stock'] = $parts[ $type . '-stock' ];
|
192 |
+
}
|
193 |
+
} else {
|
194 |
+
$stock = $data['stock'];
|
195 |
+
if ( $data['unlimited'] || ! $data['stock'] ) {
|
196 |
+
// if unlimited tickets, tickets with no stock and rsvp, or no tickets and rsvp unlimited - hide the remaining count
|
197 |
+
$stock = false;
|
198 |
+
}
|
199 |
+
|
200 |
+
$stock_html = '';
|
201 |
+
if ( $stock ) {
|
202 |
+
$number = number_format_i18n( $stock );
|
203 |
+
if ( 'rsvp' === $type ) {
|
204 |
+
$text = _n( '%s spot left', '%s spots left', $stock, 'event-tickets' );
|
205 |
+
} else {
|
206 |
+
$text = _n( '%s ticket left', '%s tickets left', $stock, 'event-tickets' );
|
207 |
+
}
|
208 |
+
|
209 |
+
$stock_html = '<span class="tribe-tickets-left">'
|
210 |
+
. esc_html( sprintf( $text, $number ) )
|
211 |
+
. '</span>';
|
212 |
+
}
|
213 |
+
|
214 |
+
$parts[ $type . '-stock' ] = $html['stock'] = $stock_html;
|
215 |
+
|
216 |
+
if ( 'rsvp' === $type ) {
|
217 |
+
$button_label = esc_html_x( 'RSVP Now!', 'list view rsvp now ticket button', 'event-tickets' );
|
218 |
+
$button_anchor = '#rsvp-now';
|
219 |
+
} else {
|
220 |
+
$button_label = esc_html_x( 'Buy Now!', 'list view buy now ticket button', 'event-tickets' );
|
221 |
+
$button_anchor = '#buy-tickets';
|
222 |
+
}
|
223 |
+
|
224 |
+
$button = '<form method="get" action="' . esc_url( get_the_permalink( $event_id ) . $button_anchor ) . '">'
|
225 |
+
. '<button type="submit" name="tickets_process" class="tribe-button">' . $button_label . '</button>'
|
226 |
+
. '</form>';
|
227 |
+
|
228 |
+
$parts[ $type . '-button' ] = $html['button'] = $button;
|
229 |
+
}
|
230 |
+
}
|
231 |
+
|
232 |
+
/**
|
233 |
+
* Filter the ticket count and purchase button
|
234 |
+
*
|
235 |
+
* @since 4.5
|
236 |
+
*
|
237 |
+
* @param array $html An array with the final HTML
|
238 |
+
* @param array $parts An array with all the possible parts of the HTMl button
|
239 |
+
* @param array $types Ticket and RSVP count array for event
|
240 |
+
* @param int $event_id Post Event ID
|
241 |
+
*/
|
242 |
+
$html = apply_filters( 'tribe_tickets_buy_button', $html, $parts, $types, $event_id );
|
243 |
+
$html = implode( "\n", $html );
|
244 |
+
|
245 |
+
if ( $echo ) {
|
246 |
+
echo $html;
|
247 |
+
}
|
248 |
+
|
249 |
+
return $html;
|
250 |
+
}
|
251 |
+
}
|
252 |
+
|
253 |
+
if ( ! function_exists( 'tribe_tickets_has_unlimited_stock_tickets' ) ) {
|
254 |
/**
|
255 |
* Returns true if the event contains one or more tickets which are not
|
256 |
* subject to any inventory limitations.
|
265 |
}
|
266 |
|
267 |
foreach ( Tribe__Tickets__Tickets::get_all_event_tickets( $event->ID ) as $ticket ) {
|
268 |
+
// Using equal operator as identical comparison operator causes this to always be false
|
269 |
if ( Tribe__Tickets__Ticket_Object::UNLIMITED_STOCK === $ticket->stock() ) {
|
270 |
return true;
|
271 |
}
|
334 |
}
|
335 |
}//end if
|
336 |
|
337 |
+
if ( ! function_exists( 'tribe_events_has_tickets_on_sale' ) ) {
|
338 |
+
/**
|
339 |
+
* Checks if the event has any tickets on sale
|
340 |
+
*
|
341 |
+
* @param int $event_id
|
342 |
+
*
|
343 |
+
* @return bool
|
344 |
+
*/
|
345 |
+
function tribe_events_has_tickets_on_sale( $event_id ) {
|
346 |
+
$has_tickets_on_sale = false;
|
347 |
+
$tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $event_id );
|
348 |
+
foreach ( $tickets as $ticket ) {
|
349 |
+
$has_tickets_on_sale = ( $has_tickets_on_sale || tribe_events_ticket_is_on_sale( $ticket ) );
|
350 |
+
}
|
351 |
+
|
352 |
+
return $has_tickets_on_sale;
|
353 |
+
}
|
354 |
+
}
|
355 |
+
|
356 |
if ( ! function_exists( 'tribe_tickets_get_ticket_stock_message' ) ) {
|
357 |
/**
|
358 |
* Gets the "tickets sold" message for a given ticket
|
414 |
}
|
415 |
|
416 |
$message = sprintf( '%1$d %2$s%3$s', absint( $sold ), esc_html( $sold_label ), esc_html( $status ) );
|
|
|
|
|
417 |
}
|
418 |
|
419 |
return $message;
|
604 |
}
|
605 |
}
|
606 |
|
|
|
607 |
if ( ! function_exists( 'tribe_tickets_post_type_enabled' ) ) {
|
608 |
/**
|
609 |
* Returns whether or not the provided post type allows tickets to be attached
|
617 |
return in_array( $post_type, $post_types );
|
618 |
}
|
619 |
}
|
620 |
+
|
621 |
+
if ( ! function_exists( 'tribe_tickets_get_event_ids' ) ) {
|
622 |
+
|
623 |
+
/**
|
624 |
+
* Gets an array of event ids when passing an id
|
625 |
+
*
|
626 |
+
* @param integer|string $id a rsvp order key, order id, attendee id, ticket id, or product id
|
627 |
+
*
|
628 |
+
* @return array
|
629 |
+
*/
|
630 |
+
function tribe_tickets_get_event_ids( $id ) {
|
631 |
+
return tribe( 'tickets.data_api' )->get_event_ids( $id );
|
632 |
+
}
|
633 |
+
}
|
634 |
+
|
635 |
+
if ( ! function_exists( 'tribe_tickets_get_ticket_provider' ) ) {
|
636 |
+
|
637 |
+
/**
|
638 |
+
* Gets the ticket provider class when passed an id
|
639 |
+
*
|
640 |
+
* @param integer|string $id a rsvp order key, order id, attendee id, ticket id, or product id
|
641 |
+
*
|
642 |
+
* @return bool|object
|
643 |
+
*/
|
644 |
+
function tribe_tickets_get_ticket_provider( $id ) {
|
645 |
+
return tribe( 'tickets.data_api' )->get_ticket_provider( $id );
|
646 |
+
}
|
647 |
+
}
|
648 |
+
|
649 |
+
if ( ! function_exists( 'tribe_tickets_get_attendees' ) ) {
|
650 |
+
|
651 |
+
/**
|
652 |
+
* Get attendee(s) by an id
|
653 |
+
*
|
654 |
+
* @param integer|string $id a rsvp order key, order id, attendee id, ticket id, or event id
|
655 |
+
* @param null $context use 'rsvp_order' to get all rsvp tickets from an order based off the post id and not the order key
|
656 |
+
*
|
657 |
+
* @return array() an array of all attendee(s) data including custom attendee meta for a given id
|
658 |
+
*/
|
659 |
+
function tribe_tickets_get_attendees( $id, $context = null ) {
|
660 |
+
return tribe( 'tickets.data_api' )->get_attendees_by_id( $id, $context );
|
661 |
+
}
|
662 |
+
}
|
663 |
+
|
664 |
+
if ( ! function_exists( 'tribe_tickets_has_meta_data' ) ) {
|
665 |
+
|
666 |
+
/**
|
667 |
+
* Return true or false if a given id has meta data
|
668 |
+
*
|
669 |
+
* @param integer|string $id a rsvp order key, order id, attendee id, ticket id, or event id
|
670 |
+
* @param null $context use 'rsvp_order' to get all rsvp tickets from an order based off the post id and not the order key
|
671 |
+
*
|
672 |
+
* @return bool
|
673 |
+
*/
|
674 |
+
function tribe_tickets_has_meta_data( $id, $context = null ) {
|
675 |
+
return tribe( 'tickets.data_api' )->attendees_has_meta_data( $id, $context );
|
676 |
+
}
|
677 |
+
}
|
678 |
+
|
679 |
+
if ( ! function_exists( 'tribe_tickets_has_meta_fields' ) ) {
|
680 |
+
|
681 |
+
/**
|
682 |
+
* Return true or false if a given id has meta fields
|
683 |
+
*
|
684 |
+
* @param integer|string $id a rsvp order key, order id, attendee id, ticket id, or event id
|
685 |
+
* @param null $context use 'rsvp_order' to get all rsvp tickets from an order based off the post id and not the order key
|
686 |
+
*
|
687 |
+
* @return bool
|
688 |
+
*/
|
689 |
+
function tribe_tickets_has_meta_fields( $id, $context = null ) {
|
690 |
+
return tribe( 'tickets.data_api' )->ticket_has_meta_fields( $id, $context );
|
691 |
+
}
|
692 |
+
}
|
src/views/tickets/email.php
CHANGED
@@ -16,7 +16,7 @@
|
|
16 |
* 'security_code')
|
17 |
*
|
18 |
* @package TribeEventsCalendar
|
19 |
-
* @version 4.
|
20 |
*
|
21 |
*/
|
22 |
?>
|
@@ -233,7 +233,7 @@
|
|
233 |
$count ++;
|
234 |
|
235 |
if ( $count == 2 ) {
|
236 |
-
$break = 'page-break-before:
|
237 |
}
|
238 |
|
239 |
$event = get_post( $ticket['event_id'] );
|
16 |
* 'security_code')
|
17 |
*
|
18 |
* @package TribeEventsCalendar
|
19 |
+
* @version 4.5
|
20 |
*
|
21 |
*/
|
22 |
?>
|
233 |
$count ++;
|
234 |
|
235 |
if ( $count == 2 ) {
|
236 |
+
$break = 'page-break-before:always !important;';
|
237 |
}
|
238 |
|
239 |
$event = get_post( $ticket['event_id'] );
|
src/views/tickets/rsvp.php
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
*
|
7 |
* [your-theme]/tribe-events/tickets/rsvp.php
|
8 |
*
|
9 |
-
* @version 4.
|
10 |
*
|
11 |
* @var bool $must_login
|
12 |
*/
|
@@ -20,8 +20,18 @@ $messages = Tribe__Tickets__RSVP::get_instance()->get_messages();
|
|
20 |
$messages_class = $messages ? 'tribe-rsvp-message-display' : '';
|
21 |
$now = current_time( 'timestamp' );
|
22 |
?>
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
<div class="tribe-rsvp-messages">
|
26 |
<?php
|
27 |
if ( $messages ) {
|
@@ -34,11 +44,14 @@ $now = current_time( 'timestamp' );
|
|
34 |
}//end foreach
|
35 |
}//end if
|
36 |
?>
|
37 |
-
|
|
|
|
|
38 |
<?php esc_html_e( 'Please fill in the RSVP confirmation name and email fields.', 'event-tickets' ); ?>
|
39 |
</div>
|
40 |
</div>
|
41 |
-
|
|
|
42 |
<?php
|
43 |
foreach ( $tickets as $ticket ) {
|
44 |
// if the ticket isn't an RSVP ticket, then let's skip it
|
@@ -52,35 +65,38 @@ $now = current_time( 'timestamp' );
|
|
52 |
|
53 |
$is_there_any_product = true;
|
54 |
$is_there_any_product_to_sell = $ticket->is_in_stock();
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
<?php endif; ?>
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
</td>
|
81 |
-
</tr>
|
82 |
|
83 |
-
<?php
|
84 |
/**
|
85 |
* Allows injection of HTML after an RSVP ticket table row
|
86 |
*
|
@@ -92,7 +108,7 @@ $now = current_time( 'timestamp' );
|
|
92 |
}
|
93 |
?>
|
94 |
|
95 |
-
<?php if ( $
|
96 |
<tr class="tribe-tickets-meta-row">
|
97 |
<td colspan="4" class="tribe-tickets-attendees">
|
98 |
<header><?php esc_html_e( 'Send RSVP confirmation to:', 'event-tickets' ); ?></header>
|
@@ -130,11 +146,18 @@ $now = current_time( 'timestamp' );
|
|
130 |
<?php Tribe__Tickets__Tickets_View::instance()->render_rsvp_selector( 'attendee[order_status]', '' ); ?>
|
131 |
</td>
|
132 |
</tr>
|
|
|
133 |
<?php if ( class_exists( 'Tribe__Tickets_Plus__Attendees_List' ) && ! Tribe__Tickets_Plus__Attendees_List::is_hidden_on( get_the_ID() ) ) : ?>
|
134 |
<tr class="tribe-tickets-attendees-list-optout">
|
135 |
<td colspan="4">
|
136 |
-
<input
|
137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
</td>
|
139 |
</tr>
|
140 |
<?php endif; ?>
|
@@ -143,15 +166,23 @@ $now = current_time( 'timestamp' );
|
|
143 |
</tr>
|
144 |
<tr>
|
145 |
<td colspan="4" class="add-to-cart">
|
146 |
-
<?php if ( $must_login ): ?>
|
147 |
-
<a href="<?php echo Tribe__Tickets__Tickets::get_login_url(); ?>"
|
|
|
|
|
148 |
<?php else: ?>
|
149 |
-
<button
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
<?php endif; ?>
|
151 |
</td>
|
152 |
</tr>
|
153 |
<?php endif; ?>
|
154 |
-
|
155 |
<noscript>
|
156 |
<tr>
|
157 |
<td class="tribe-link-tickets-message">
|
6 |
*
|
7 |
* [your-theme]/tribe-events/tickets/rsvp.php
|
8 |
*
|
9 |
+
* @version 4.5
|
10 |
*
|
11 |
* @var bool $must_login
|
12 |
*/
|
20 |
$messages_class = $messages ? 'tribe-rsvp-message-display' : '';
|
21 |
$now = current_time( 'timestamp' );
|
22 |
?>
|
23 |
+
|
24 |
+
<form
|
25 |
+
id="rsvp-now"
|
26 |
+
action=""
|
27 |
+
class="tribe-tickets-rsvp cart <?php echo esc_attr( $messages_class ); ?>"
|
28 |
+
method="post"
|
29 |
+
enctype='multipart/form-data'
|
30 |
+
>
|
31 |
+
<h2 class="tribe-events-tickets-title tribe--rsvp">
|
32 |
+
<?php echo esc_html_x( 'RSVP', 'form heading', 'event-tickets' ) ?>
|
33 |
+
</h2>
|
34 |
+
|
35 |
<div class="tribe-rsvp-messages">
|
36 |
<?php
|
37 |
if ( $messages ) {
|
44 |
}//end foreach
|
45 |
}//end if
|
46 |
?>
|
47 |
+
|
48 |
+
<div
|
49 |
+
class="tribe-rsvp-message tribe-rsvp-message-error tribe-rsvp-message-confirmation-error" style="display:none;">
|
50 |
<?php esc_html_e( 'Please fill in the RSVP confirmation name and email fields.', 'event-tickets' ); ?>
|
51 |
</div>
|
52 |
</div>
|
53 |
+
|
54 |
+
<table class="tribe-events-tickets tribe-events-tickets-rsvp">
|
55 |
<?php
|
56 |
foreach ( $tickets as $ticket ) {
|
57 |
// if the ticket isn't an RSVP ticket, then let's skip it
|
65 |
|
66 |
$is_there_any_product = true;
|
67 |
$is_there_any_product_to_sell = $ticket->is_in_stock();
|
68 |
+
?>
|
69 |
+
<tr>
|
70 |
+
<td class="tribe-ticket quantity" data-product-id="<?php echo esc_attr( $ticket->ID ); ?>">
|
71 |
+
<input type="hidden" name="product_id[]" value="<?php echo absint( $ticket->ID ); ?>">
|
72 |
+
<?php if ( $is_there_any_product_to_sell ) : ?>
|
73 |
+
<input
|
74 |
+
type="number"
|
75 |
+
class="tribe-ticket-quantity"
|
76 |
+
min="0"
|
77 |
+
max="<?php echo esc_attr( $ticket->remaining() ); ?>"
|
78 |
+
name="quantity_<?php echo absint( $ticket->ID ); ?>"
|
79 |
+
value="0"
|
80 |
+
<?php disabled( $must_login ); ?>
|
81 |
+
>
|
82 |
+
<?php if ( $ticket->managing_stock() ) : ?>
|
83 |
+
<span class="tribe-tickets-remaining">
|
84 |
+
<?php echo sprintf( esc_html__( '%1$s out of %2$s available', 'event-tickets' ), $ticket->remaining(), $ticket->original_stock() ); ?>
|
85 |
+
</span>
|
86 |
+
<?php endif; ?>
|
87 |
+
<?php else: ?>
|
88 |
+
<span class="tickets_nostock"><?php esc_html_e( 'Out of stock!', 'event-tickets' ); ?></span>
|
89 |
<?php endif; ?>
|
90 |
+
</td>
|
91 |
+
<td class="tickets_name">
|
92 |
+
<?php echo esc_html( $ticket->name ); ?>
|
93 |
+
</td>
|
94 |
+
<td class="tickets_description" colspan="2">
|
95 |
+
<?php echo esc_html( $ticket->description ); ?>
|
96 |
+
</td>
|
97 |
+
</tr>
|
98 |
+
<?php
|
|
|
|
|
99 |
|
|
|
100 |
/**
|
101 |
* Allows injection of HTML after an RSVP ticket table row
|
102 |
*
|
108 |
}
|
109 |
?>
|
110 |
|
111 |
+
<?php if ( $is_there_any_product_to_sell ) : ?>
|
112 |
<tr class="tribe-tickets-meta-row">
|
113 |
<td colspan="4" class="tribe-tickets-attendees">
|
114 |
<header><?php esc_html_e( 'Send RSVP confirmation to:', 'event-tickets' ); ?></header>
|
146 |
<?php Tribe__Tickets__Tickets_View::instance()->render_rsvp_selector( 'attendee[order_status]', '' ); ?>
|
147 |
</td>
|
148 |
</tr>
|
149 |
+
|
150 |
<?php if ( class_exists( 'Tribe__Tickets_Plus__Attendees_List' ) && ! Tribe__Tickets_Plus__Attendees_List::is_hidden_on( get_the_ID() ) ) : ?>
|
151 |
<tr class="tribe-tickets-attendees-list-optout">
|
152 |
<td colspan="4">
|
153 |
+
<input
|
154 |
+
type="checkbox"
|
155 |
+
name="attendee[optout]"
|
156 |
+
id="tribe-tickets-attendees-list-optout"
|
157 |
+
>
|
158 |
+
<label for="tribe-tickets-attendees-list-optout">
|
159 |
+
<?php esc_html_e( 'Don\'t list me on the public attendee list', 'event-tickets' ); ?>
|
160 |
+
</label>
|
161 |
</td>
|
162 |
</tr>
|
163 |
<?php endif; ?>
|
166 |
</tr>
|
167 |
<tr>
|
168 |
<td colspan="4" class="add-to-cart">
|
169 |
+
<?php if ( $must_login ) : ?>
|
170 |
+
<a href="<?php echo esc_url( Tribe__Tickets__Tickets::get_login_url() ); ?>">
|
171 |
+
<?php esc_html_e( 'Login to RSVP', 'event-tickets' );?>
|
172 |
+
</a>
|
173 |
<?php else: ?>
|
174 |
+
<button
|
175 |
+
type="submit"
|
176 |
+
name="tickets_process"
|
177 |
+
value="1"
|
178 |
+
class="tribe-button tribe-button--rsvp"
|
179 |
+
>
|
180 |
+
<?php esc_html_e( 'Confirm RSVP', 'event-tickets' );?>
|
181 |
+
</button>
|
182 |
<?php endif; ?>
|
183 |
</td>
|
184 |
</tr>
|
185 |
<?php endif; ?>
|
|
|
186 |
<noscript>
|
187 |
<tr>
|
188 |
<td class="tribe-link-tickets-message">
|