5

Mam metodę związaną z działaniem save_post, WPML jest używany jako wtyczka tłumaczenia, próbuję znaleźć sposób, który po dodaniu tłumaczenia i opublikowaniu jest kliknięty, a metoda save_post jest uruchomione, aby znać identyfikator oryginalnego wpisu.Przekazywanie ID do przetłumaczonego postu w save_post

Do tej pory stwierdziłem, że można to zrobić tylko po opublikowaniu wpisu i uruchomieniu aktualizacji. W tym celu metoda icl_object_id ($ translated_post_id, 'post', false, 'en' -> English jest językiem, w którym oryginalny post będzie zawsze tworzony);

Zobacz komentarz MSG, aby zobaczyć powyższe w kontekście.

function my_project_updated_send_email($post_id, $post, $update){ 


    if ('publish' == get_post_status($post_id) && 'events' == get_post_type($post)) { 

    if(ICL_LANGUAGE_CODE == 'en'){ 
    // Shortened - Everything works fine 

    }elseif (ICL_LANGUAGE_CODE == 'it'){ 

     //Get English Language Post ID 
     $id = icl_object_id($post_id,'post',false,'en'); 
     //MSG: $id returns empty on publish, but returns fine on update 

     $event_id = get_field('event_id', $id); 

     if($event_id == ""){ 
     // Shortened - Everything works fine 
     } 

    } 

    } 

} 

add_action('save_post', 'my_project_updated_send_email', 10, 3); 
+0

Miałem grę i otrzymałem identyfikator w haku 'save_post' za każdym razem, gdy tworzyłem nowy post. Ale nie mam wtyczki WPML, więc może to zmienić. Pytanie - czy angielski wpisuje rodzica w inne posty językowe? Czy 'wp_get_post_parent_id()' może pomóc? –

Odpowiedz