Support » Plugins » Formulardaten als CPT speichern, aber nur wenn Formular Id = x

  • Hallo Leute,

    ich habe aktuell ein Formular mit einem benutzerdefinierten Beitragstyp. Dieser enthält einige metafelder, die ich via CF7 Function auf die jeweiligen Input-Felder mappe. Der Code sieht so aus:

    function save_posted_data( $posted_data ) {
    	
    	$form_id = $contact_form->id();
    	if( $form_id == 1903 ) {
    
    		$args = array(
    			'post_type' => 'np-food',
    			'post_status'=>'draft',
    			'post_title'=>$posted_data['food-name'],
    			'post_content'=>$posted_data['food-desc'],
    		);
    		$post_id = wp_insert_post($args);
    
    		if(!is_wp_error($post_id)){
    			if( isset($posted_data['food-name']) ){
    				update_post_meta($post_id, 'food-name', $posted_data['food-name']);
    			}
    			// and so on
    		}
    	}
    	return $posted_data;
    }
    add_filter( 'wpcf7_posted_data', 'save_posted_data' );

    Das Ganze funktioniert auch, nur leider offenbar nicht die ID-Prüfung. Bzw, doch, es wird nur ein CPT erstellt, wenn dieses Formular verwendet wird, nur alle anderen Formulare enden beim „Absenden“ in einer Endlosschleife.

    Hat jemand eine Idee?

    Beste Grüße
    Buddy