HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/f/r/e/frenchy/www/_trash/wp-content/plugins/advanced-forms/core/core-entries.php
<?php
	

/**
 * Handles the creation of entries
 *
 * @since 1.0.0
 *
 */
class AF_Core_Entries {
	
	function __construct() {
		add_action( 'af/form/submission', array( $this, 'create_entry' ), 1, 1 );
		add_action( 'save_post', array( $this, 'entry_saved' ), 10, 3 );

		add_action( 'af/merge_tags/custom', array( $this, 'add_entry_id_tag' ), 10, 2 );
		add_action( 'af/merge_tags/resolve', array( $this, 'resolve_entry_id_tag' ), 10, 2 );
	}
	
	
	/**
	 * Create entry when form is submitted
	 *
	 * @since 1.0.0
	 *
	 */
	function create_entry( $form ) {
		
		// Make sure entries should be created
		if ( ! $form['create_entries'] ) {
			return;
		}
		
		
		// Create entry post
		$post_data = array(
			'post_type' 		=> 'af_entry',
			'post_status' 		=> 'publish',
			'post_title'		=> '',
		);
		
		$entry_id = wp_insert_post( $post_data );
		
		if ( ! $entry_id ) {
			return;
		}
		
		
		// Update post title
		$updated_title_data = array(
			'ID' 			=> $entry_id,
			'post_title' 	=> sprintf( '#%s', $entry_id ),
		);
		
		wp_update_post( $updated_title_data );
		
		
		// Save general entry info
		update_post_meta( $entry_id, 'entry_form', $form['key'] );
		update_post_meta( $entry_id, 'entry_submission_date', date( 'Y-m-d H:i:s' ) );
		
		
		// Transfer all fields to the entry
		af_save_all_fields( $entry_id );
		
		
		// Save generated entry ID to submission object
		AF()->submission['entry'] = $entry_id;


		// Trigger entry
		do_action( 'af/form/entry_created', $entry_id, $form );
		do_action( 'af/form/entry_created/id=' . $form['post_id'], $entry_id, $form );
		do_action( 'af/form/entry_created/key=' . $form['key'], $entry_id, $form );
		
	}
	
	
	/**
	 * Sets some basic entry post data, such as the post title matching the ID
	 *
	 * @since 1.0.1
	 *
	 */
	function entry_saved( $post_id, $post, $update ) {
		
		// Bail if we are not dealing with an entry
		if ( 'af_entry' != $post->post_type ) {
			return;
		}
		
		
		// Check if an post title has been set
		if ( ! $post->post_title || empty( $post->post_title ) ) {
			
			remove_action( 'save_post', array( $this, 'entry_saved' ) );
			
			// Set the post title to match the ID
			$updated_post_data = array(
				'ID' => $post_id,
				'post_title' => sprintf( '#%s', $post_id ),
			);
			
			wp_update_post( $updated_post_data );
			
			add_action( 'save_post', array( $this, 'entry_saved' ), 10, 3 );
			
		}
		
	}


	/**
	 * Add custom merge tag {entry_id}
	 *
	 * @since 1.6.0
	 *
	 */
	function add_entry_id_tag( $tags, $form ) {
		$tags[] = array(
			'value' => 'entry_id',
			'label' => __( 'Entry ID', 'advanced-forms' ),
		);

		return $tags;
	}


	/**
	 * Resolve merge tags on the form {entry_id}
	 *
	 * @since 1.6.0
	 *
	 */
	function resolve_entry_id_tag( $output, $tag ) {
		if ( ! empty( $output ) || 'entry_id' != $tag ) {
			return $output;
		}

		$entry_id = isset( AF()->submission['entry'] ) ? AF()->submission['entry'] : '';
		return $entry_id;
	}
	
}

return new AF_Core_Entries();