admin_url('admin-ajax.php'), )); } add_action('wp_enqueue_scripts', 'aumenu_css_js'); add_action('admin_enqueue_scripts', 'aumenu_css_js'); require_once(dirname( __FILE__ ).'/widget/aumenu_widget.php'); /** * Register a post type. */ function aumenu_custom_init() { flush_rewrite_rules(); $slug = get_option('aumenu_slug'); load_textdomain('wp_aumenu', dirname( __FILE__ ).'/lang/aumenu-'.aumenu_get_language().'.mo'); $labels = array( 'name' => _x( 'AuMenu', 'post type general name' ), 'singular_name' => _x( 'aumenu', 'post type singular name' ), 'add_new' => _x( 'Add New', 'aumenu' ), 'add_new_item' => __( 'Add New Page' ), 'edit_item' => __( 'Edit Page' ), 'new_item' => __( 'New Page' ), 'all_items' => __( 'All Page' ), 'view_item' => __( 'View Page' ), 'search_items' => __( 'Search Page' ), 'not_found' => __( 'No page found' ), 'not_found_in_trash' => __( 'No page found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'AuMenu' ); $args = array( 'labels' => $labels, 'description' => 'AuMenu page creator', 'public' => true, 'rewrite' => true, 'show_ui' => true, '_builtin' => false, 'capability_type' => 'post', 'supports' => array('title', 'editor', 'thumbnail'), 'has_archive' => false, 'rewrite' => false//array('slug' => $slug, 'with_front' => true), ); register_post_type('aumenu', $args); add_rewrite_tag("%establishment%", '(.*?)', 'establishment='); add_rewrite_tag("%beer%", '(.*?)', 'beer='); add_rewrite_rule('^aumenu/(.*?)/(.*?)/(.*?)/?$', 'index.php?aumenu=$matches[1]&establishment=$matches[3]&beer=$matches[2]', 'top'); add_rewrite_rule('^'.$slug.'/(.*?)/(.*?)/(.*?)/?$', 'index.php?aumenu=$matches[1]&establishment=$matches[3]&beer=$matches[2]', 'top'); add_rewrite_rule('^aumenu/(.*?)/(.*?)/?$', 'index.php?aumenu=$matches[1]&beer=$matches[2]', 'top'); add_rewrite_rule('^'.$slug.'/(.*?)/(.*?)/?$', 'index.php?aumenu=$matches[1]&beer=$matches[2]', 'top'); add_rewrite_rule('^aumenu/(.*?)/?$', 'index.php?aumenu=$matches[1]', 'top'); add_rewrite_rule('^'.$slug.'/(.*?)/?$', 'index.php?aumenu=$matches[1]', 'top'); flush_rewrite_rules(); } add_action('init', 'aumenu_custom_init'); function query_vars($query_vars ) { $query_vars[] = 'establishment'; $query_vars[] = 'beer'; return $query_vars; } add_filter('query_vars', 'query_vars'); function aumenu_post_link($post_link, $post_id, $leavename = false, $sample = false) { $post = get_post($post_id); $page_type = get_post_meta($post->ID, '_establishments_type', true); $slug = get_option('aumenu_slug') !== false && strlen(get_option('aumenu_slug')) > 0 ? get_option('aumenu_slug') : $post->post_type; if ($post->post_type == 'aumenu') { return home_url("/".$slug."/".$post->post_name."/"); } return $post_link; } add_filter('post_link', 'aumenu_post_link'); function aumenu_post_type_link($post_link, $post_id, $leavename = false, $sample = false) { $post = get_post($post_id); //print_r($post); //$page_type = get_post_meta($post->ID, '_establishments_type', true); $slug = get_option('aumenu_slug') !== false && strlen(get_option('aumenu_slug')) > 0 ? get_option('aumenu_slug') : $post->post_type; if ($post->post_type == 'aumenu') { return home_url("/".$slug."/".$post->post_name."/"); } return $post_link; } add_filter('post_type_link', /* array($this, */'aumenu_post_type_link'/* ) */, 10, 3); function add_page_beer_template($single_template) { global $wp_query, $post; $page_type = get_post_meta($post->ID, '_establishments_type', true); $v_establishment = isset($wp_query->query_vars['establishment']) ? $wp_query->query_vars['establishment'] : (isset($_GET['establishment']) ? $_GET['establishment'] : false); $v_beer = isset($wp_query->query_vars['beer']) ? $wp_query->query_vars['beer'] : (isset($_GET['beer']) ? $_GET['beer'] : false); if ($page_type == 'taps') { if ($wp_query->query['post_type'] == 'aumenu' && /* $v_establishment && */$v_beer) { return dirname( __FILE__ ).'/content.php'; } else if ($wp_query->query['post_type'] == 'aumenu') { return dirname( __FILE__ ).'/content.php'; } } else if ($page_type == 'foods') { return dirname( __FILE__ ).'/content.php'; } else if ($page_type == 'beers') { if ($wp_query->query['post_type'] == 'aumenu' && /* $v_establishment && */$v_beer) { return dirname( __FILE__ ).'/content.php'; } else if ($wp_query->query['post_type'] == 'aumenu') { return dirname( __FILE__ ).'/content.php'; } } else if ($page_type == 'bottles') { if ($wp_query->query['post_type'] == 'aumenu' && /* $v_establishment && */$v_beer) { return dirname( __FILE__ ).'/content.php'; } else if ($wp_query->query['post_type'] == 'aumenu') { return dirname( __FILE__ ).'/content.php'; } } return $single_template; } add_filter('single_template', 'add_page_beer_template', 10, 1); function add_aumenu_metaboxes() { add_meta_box('aumenu_establishments_id', 'AuMenu', 'aumenu_establishments_id', 'aumenu', 'normal', 'high'); } add_action( 'add_meta_boxes', 'add_aumenu_metaboxes' ); function aumenu_establishments_id() { global $post; $public_key = get_option('aumenu_public_key'); $secret_key = get_option('aumenu_secret_key'); $aumenu = new AuMenuSDK(); $aumenu->setLanguage(aumenu_get_language()); $aumenu->getToken($public_key, $secret_key); $user = json_decode($aumenu->getUser()); echo ''; $establishments_type = get_post_meta($post->ID, '_establishments_type', true); $types_array = null; if (isset($user) && isset($user->data) && isset($user->data->breweries)) { $types_array['beers'] = __('Beers', 'wp_aumenu'); if (!$establishments_type) { $establishments_type = 'beers'; } } if (isset($user) && isset($user->data) && isset($user->data->establishments)) { $types_array['taps'] = __('Taps', 'wp_aumenu'); $types_array['bottles'] = __('Bottles', 'wp_aumenu'); $types_array['foods'] = __('Foods', 'wp_aumenu'); if (!$establishments_type) { $establishments_type = 'taps'; } } ?> ID, '_establishments_id', true); $datas = null; if ($establishments_type && $establishments_type == 'beers') { if (isset($user) && isset($user->data) && isset($user->data->breweries)) { $datas = $user->data->breweries; } } else if ($establishments_type && ($establishments_type == 'taps' || $establishments_type == 'foods' || $establishments_type == 'bottles')) { if (isset($user) && isset($user->data) && isset($user->data->establishments)) { $datas = $user->data->establishments; } } else { if (isset($user) && isset($user->data) && isset($user->data->breweries)) { $datas = $user->data->breweries; } } ?> setLanguage(aumenu_get_language()); $aumenu->getToken($public_key, $secret_key); $user = json_decode($aumenu->getUser()); $datas = null; if ($establishments_type && $establishments_type == 'beers') { if (isset($user) && isset($user->data) && isset($user->data->breweries)) { $datas = $user->data->breweries; } } else if ($establishments_type && ($establishments_type == 'taps' || $establishments_type == 'foods' || $establishments_type == 'bottles')) { if (isset($user) && isset($user->data) && isset($user->data->establishments)) { $datas = $user->data->establishments; } } else { if (isset($user) && isset($user->data) && isset($user->data->breweries)) { $datas = $user->data->breweries; } } echo json_encode($datas); die(); } add_action( 'wp_ajax_change', 'aumenu_admin_post_type_change' ); function wpt_save_aumenu_meta($post_id, $post) { if ( !wp_verify_nonce( $_POST['aumenu_nonce'], plugin_basename(__FILE__) )) { return $post->ID; } if ( !current_user_can( 'edit_post', $post->ID )) return $post->ID; $events_meta['_establishments_id'] = $_POST['_establishments_id']; $events_meta['_establishments_type'] = $_POST['_establishments_type']; foreach ($events_meta as $key => $value) { if( $post->post_type == 'revision' ) return; $value = implode(',', (array)$value); if(get_post_meta($post->ID, $key, FALSE)) { update_post_meta($post->ID, $key, $value); } else { add_post_meta($post->ID, $key, $value); } if(!$value) delete_post_meta($post->ID, $key); } } add_action('save_post', 'wpt_save_aumenu_meta', 1, 2); ?>