Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@wvega
Created December 19, 2016 16:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wvega/31a4bef3b1db1d048e1d61172b87711b to your computer and use it in GitHub Desktop.
Save wvega/31a4bef3b1db1d048e1d61172b87711b to your computer and use it in GitHub Desktop.
Workarounds to make Eventbrite API WordPress plugin work on 32bit systems
<?php
// Additions to main functions.php file - eventbrite 32bit php problems - referenced from http://wvega.com/850/getting-eventbrite-api-wordpress-plugin-to-work-on-systems-with-32-bit-builds-of-php/
function wvega_850_filter_event_permalink( $url ) { // eg. http://mysite.com/events/july-test-drive-11829569561
if ( function_exists( 'eventbrite_is_event' ) && eventbrite_is_event() ) {
$url = sprintf( '%1$s/%2$s/%3$s-%4$s/',
esc_url( home_url() ), // protocol://domain
sanitize_title( get_queried_object()->post_name ), // page-with-eventbrite-template
sanitize_title( get_post()->post_title ), // event-title
wvega_850_get_current_event_id() // event ID
);
}
return $url;
}
add_filter( 'post_link', 'wvega_850_filter_event_permalink', 11 );
function wvega_850_http_api_curl( $handle, $r, $url ) {
if ( false === strpos( $url, 'www.eventbriteapi.com' ) || false === strpos( $url, '2147483647' ) ) {
return;
}
$eventbrite_id = wvega_850_get_current_event_id();
if ( empty( $eventbrite_id ) ) {
return;
}
$new_url = str_replace( '2147483647', $eventbrite_id, $url );
curl_setopt( $handle, CURLOPT_URL, $new_url);
}
add_action( 'http_api_curl', 'wvega_850_http_api_curl', 10, 3 );
function wvega_850_get_current_event_id() {
$eventbrite_id = get_query_var( 'eventbrite_id' );
if ( $eventbrite_id ) {
return $eventbrite_id;
}
$post = get_post();
if ( isset( $post->tickets[0]->event_id ) ) {
$eventbrite_id = $post->tickets[0]->event_id;
}
return $eventbrite_id;
}
function wvega_850_eventbrite_transient_name( $transient_name, $endpoint, $params ) {
if ( $endpoint != 'event_details' ) {
return $transient_name . rand();
}
$eventbrite_id = wvega_850_get_current_event_id();
if ( empty( $eventbrite_id ) ) {
return $transient_name . rand();
}
$params['p'] = $eventbrite_id;
return 'eventbrite_' . md5( $endpoint . implode( $params ) );
}
add_filter( 'eventbrite_transient_name', 'wvega_850_eventbrite_transient_name', 10, 3 );
// end of additions for eventbrite 32bit php problems
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment