Untitled

 avatar
unknown
plain_text
2 years ago
1.8 kB
7
Indexable
add_action('save_post_egg', 'assign_race_to_egg_based_on_terrarium', 10, 3);

function assign_race_to_egg_based_on_terrarium($post_id, $post, $update) {
    // Sikrer at vi ikke er i en autosave rutine
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
        return;

    // Sikrer at brugeren har rettigheder til at redigere posten
    if (!current_user_can('edit_post', $post_id))
        return;

    // Kontrollerer om post-typen er 'egg'
    if ($post->post_type != 'egg') {
        return;
    }

    // Hent terrarie term tildelt til Egg
    $egg_terrarie_terms = wp_get_post_terms($post_id, 'terrarie');
    if (is_wp_error($egg_terrarie_terms) || empty($egg_terrarie_terms)) {
        return; // Ingen terrarie tildelt, eller der opstod en fejl
    }
    $terrarie_id = $egg_terrarie_terms[0]->term_id;

    // Find alle Gekko posts med samme terrarie
    $gekko_args = array(
        'post_type' => 'gekko',
        'posts_per_page' => -1,
        'tax_query' => array(
            array(
                'taxonomy' => 'terrarie',
                'field'    => 'term_id',
                'terms'    => $terrarie_id,
            ),
        ),
    );
    $gekko_query = new WP_Query($gekko_args);

    $race_ids = array();
    if ($gekko_query->have_posts()) {
        while ($gekko_query->have_posts()) {
            $gekko_query->the_post();
            $gekko_races = wp_get_post_terms(get_the_ID(), 'race');
            if (!is_wp_error($gekko_races)) {
                foreach ($gekko_races as $race) {
                    $race_ids[] = $race->term_id;
                }
            }
        }
    }
    wp_reset_postdata();

    // Tildeler fundne race termer til Egg
    if (!empty($race_ids)) {
        wp_set_post_terms($post_id, $race_ids, 'race', true);
    }
}
Editor is loading...
Leave a Comment