coordinates; // mp_console_log("coordinates:"); // mp_console_log($coordinates); // } function is_event_post() { if ( is_admin() ) return false; if ( get_post_type() != "post" ) return 0; if ( get_post_status() != "publish" ) return 0; return true; } /** * when 'shortcode' found in page, enqueue scripts and styles, * run php script, and replace shortcode by return value */ function mp_ljdp_map() { /* * * * * * * * * * * * * * * * ENQUEUE SCRIPTS AND STYLES */ // https://developers.google.com/maps/documentation/javascript/marker-clustering $marker_clusterer = "https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"; wp_enqueue_style('mp__style', plugins_url('styles/mp__style.css', __FILE__), '', '', false); // enqueue header wp_enqueue_script('mp_info_window', plugins_url('scripts/mp_info_window.js', __FILE__), '', '', false); wp_enqueue_script('mp_errors_map', plugins_url('scripts/mp_errors_map.js', __FILE__), '', '', false); wp_enqueue_script('mp_create_filters', plugins_url('scripts/mp_create_filters.js', __FILE__), '', '', false); wp_enqueue_script('mp_create_markers', plugins_url('scripts/mp_create_markers.js', __FILE__), '', '', false); wp_enqueue_script('mp_create_map', plugins_url('scripts/mp_create_map.js', __FILE__), '', '', false); wp_enqueue_script('mp_draw_clusters', plugins_url('scripts/mp_draw_clusters.js', __FILE__), '', '', false); wp_enqueue_script('mp_filter_events', plugins_url('scripts/mp_filter_events.js', __FILE__), '', '', false); // enqueue footer wp_enqueue_script('mp_marker_clusterer', $marker_clusterer, '', '', true); wp_enqueue_script('mp_init_map', plugins_url('scripts/mp_init_map.js', __FILE__), ['mp_marker_clusterer'],'', true); wp_enqueue_script('mp_google_api', mp_url_api(), ['mp_init_map'], '', true); /* * * * * * * * * * FIND LOCATIONS */ $events = mp_get_published_events(); mp_console_log("php events:"); mp_console_log($events); $locations = mp_sort_events($events); mp_console_log("php locations:"); mp_console_log($locations); $filters = mp_get_filters($events); mp_console_log("php filters:"); mp_console_log($filters); $to_add = array( "locations" => $locations, "filters" => $filters, ); // if post event instead of map page, change ccoordinate and zoom global $mp_zoom; if (is_event_post()) { $mp_zoom = $mp_zoom_set[1]; $location = get_field("location"); $coordinates = $location->coordinates; $mp_coordinates_default = $coordinates; } mp_add_to_scripts($to_add); /* * * * * * * * * ADD FILTERS */ $mp_map_div = mp_create_div($filters); return $mp_map_div; } add_shortcode('lejourduprof_map', 'mp_ljdp_map'); /** * re-publish posts */ function mp_update_publish() { $post_args = array( 'numberposts' => 1, //'post_status' => 'draft', 'post_status' => 'publish', 'post_type' => 'post', ); $post_list = get_posts($post_args); foreach ($post_list as $post) { wp_update_post(array( 'ID' => $post->ID, //'post_status' => 'draft', 'post_status' => 'publish', )); }; } add_action( 'admin_post_update_publish', 'mp_update_publish' ); add_action( 'admin_post_nopriv_update_publish', 'mp_update_publish' ); // https://developer.wordpress.org/reference/hooks/admin_post_action/ // https://wordpress.stackexchange.com/questions/309440/wordpress-plugin-how-to-run-function-when-button-is-clicked function mp_add_update_button() { $content = '

cliquez sur ce bouton pour mettre a jour toutes les publications

une nouvelle page vide va s\'ouvrir dans un nouvel onglet, vous pouvez la fermer


'; return $content; } add_shortcode('ljdp_update_publish', 'mp_add_update_button'); /** * errors map */ function mp_errors_map() { return mp_find_address_errors(); } add_shortcode('ljdp_errors_map', 'mp_errors_map'); /** * when a post is saved or published or updated, * find its coordinates */ function post_published_coordinates($id, $post) { $location = mp_get_coordinates($id); if ( ! add_post_meta( $id, 'location', $location, true ) ) update_post_meta( $id, 'location', $location ); if ( ! add_post_meta( $id, 'test', "ok", true ) ) update_post_meta( $id, 'test', "ok" ); } add_action( 'publish_post', 'post_published_coordinates', 10, 2 ); /** * trying to prevent publication with message if bad country address */ // // notice on post edit : // // https://developer.wordpress.org/block-editor/how-to-guides/notices/ // // https://developer.wordpress.org/block-editor/how-to-guides/javascript/loading-javascript/ // // https://developer.wordpress.org/block-editor/reference-guides/components/notice/https://developer.wordpress.org/block-editor/reference-guides/components/notice/ // // modals : https://developer.wordpress.org/block-editor/reference-guides/components/modal/ // // // https://www.wpbeginner.com/wp-tutorials/how-to-add-admin-notices-in-wordpress/ // // https://digwp.com/2016/05/wordpress-admin-notices/ // function my_notice() { // //echo '
// //echo '
// //echo '
// //echo '
// // echo ' // //
// //

my message

// //
// // '; // // mp_console_log("\n get values:"); // foreach ($_GET as $key => $value) { // mp_console_log(" " . $key . ": " . $value); // } // $screen = get_current_screen(); // mp_console_log("\n screen values:"); // foreach ($screen as $key => $value) { // mp_console_log(" " . $key . ": " . $value); // } // } // add_action( 'admin_notices', 'my_notice'); // // // https://wordpress.stackexchange.com/questions/42013/prevent-post-from-being-published-if-custom-fields-not-filled // // https://developer.wordpress.org/reference/hooks/save_post/ // function my_publish_check($id, $post, $update) { // // // is doing autosaving ? // if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) // return; // // // is post creation ? // if (!$update) // return; // // // if this is a revision, get real post ID // if ( $parent_id = wp_is_post_revision( $id ) ) // $id = $parent_id; // // // is the user allowed to edit the post or page ? // if ( !current_user_can( 'edit_post', $id ) ) // return; // // // is not being published ? // if ($post->post_status != "publish") // return; // // $prevent_publish= true; // set to true if data was invalid // if ($prevent_publish) { // // // unhook this function to prevent indefinite loop // remove_action('save_post', 'my_save_post'); // // // update the post to change post status // wp_update_post(array('ID' => $id, 'post_status' => 'draft')); // // // re-hook this function again // add_action('save_post', 'my_save_post'); // } // } // add_action( 'save_post_post', 'my_publish_check', 10, 3); // // function publish_error() { // wp_enqueue_script('mp_publish_error', // plugins_url('scripts/mp_publish_error.js', __FILE__), // array( 'wp-data' ), // '', // true // ); // } // add_action( 'enqueue_block_editor_assets', 'publish_error'); // // // https://wordpress.stackexchange.com/questions/42013/prevent-post-from-being-published-if-custom-fields-not-filled // // https://wordpress.stackexchange.com/questions/15546/dont-publish-custom-post-type-post-if-a-meta-data-field-isnt-valid // function my_redirect_location($location, $post_id) { // // // if post was published... // if (isset($_POST['publish'])){ // // // obtain current post status // $status = get_post_status( $post_id ); // // // the post was 'published', but if it is still a draft, display draft message (10). // if($status=='draft') { // $location = add_query_arg('message', 10, $location); // } // } // // return $location; // } // add_filter('redirect_post_location', 'my_redirect_location', 10, 2); // // //function test1($id, $post) { // // mp_console_log("save_post - " . $post->post_status); // //} // //add_action( 'save_post', 'test1', 10, 2 ); // /* // modification rapide, publie -> brouillon : 1 - draft // modification rapide, brouillon -> brouillon : 1 - draft // modification rapide, brouillon -> publie : 1 - publish // add post : 1 - auto-draft // modification, publie -> brouillon : 2 - draft // modification, brouillon -> brouillon : 2 - draft // modification, brouillon -> publie : 2 - publish // */ // // //function test2($id, $post) { // // mp_console_log("publish_post - " . $post->post_status); // //} // //add_action( 'publish_post', 'test2', 10, 2 ); // /* // modification rapide, publie -> brouillon : / // modification rapide, brouillon -> brouillon : / // modification rapide, brouillon -> publie : 1 - publish // add post : / // modification, publie -> brouillon : / // modification, brouillon -> brouillon : / // modification, brouillon -> publie : 2 - publish // */ ?>