Support

Account

Home Forums ACF PRO add hashtags automatically before posting Reply To: add hashtags automatically before posting

  • Oh, Sorry, I thought I did! Here it is 🙂

    <?php
    
    //Auto add and update Title field:
    function my_post_updater( $post_id ) {
    
    	// unhook this function to prevent infinite looping
        remove_action( 'acf/save_post', 'my_post_updater', 20 );
    	
    	// change status if admin is user
    	if ( um_user( "role" ) == 'admin' ) { 
    		$pStatus = "publish";
    	} else {
    		$pStatus = "draft";
    	}
    
    	// some variables to use
    	$pLocation = $_POST['acf']['field_554f18ecbf60c'];	
    	$pLocation = strtoupper( $pLocation );
    
    	// get some tags of location + tags
    	$pTags = $pLocation;
    	$also_casting_in = $_POST['acf']['field_55c9ee7857c82'];
    	foreach( $also_casting_in as $value ) {
    		$pTags = $pTags . ", " . $value;
    	}
    	$pTags = strtolower( $pTags );
    
    	// get the role & location & build the title
    	$pTitle = $pLocation . ": " . $_POST['acf']['field_559918d8fce21'];
    
    	// add the info at the end if it's locale_get_default
    	$extrainfo = "";
    	if ( $_POST['acf']['field_554f3827eee0c'] == 1 ) {
    		$extrainfo = "[L]";
    	} 
    	if ( $_POST['acf']['field_55bf6059da1d8'] == "P" ) {
    		if ( $extrainfo == "[L]" ) {
    			$extrainfo = "[L,P]";
    		} else {
    			$extrainfo = "[P]";
    		}
    	} 
    	if ( $_POST['acf']['field_55bf6059da1d8'] == "NP" ) {
    		if ( $extrainfo == "[L]" ) {
    			$extrainfo = "[L,NP]";
    		} else {
    			$extrainfo = "[NP]";
    		}
    	}
    	if ( $extrainfo != "" ) {
    		$pTitle = $pTitle . " " . $extrainfo;
    	}
    		
    	// add the custom fields box onto the main content
    	$pContent = $_POST['acf']['field_55991581f79f7'] . "<p>[Custom Fields]</p>";
    
    	// Create the update
    	$my_post = array();
    	$my_post['ID'] = $post_id;
    	$my_post['post_title'] = $pTitle;
    	$my_post['post_status'] = $pStatus;
    	$my_post['post_content'] = $pContent;
    	$my_post['tags_input'] = $pTags;
    
    	// the permalink bit; begin by getting the slug
    	//$post = get_post($post_id);
    	//$slug = $post->post_name;
    	//if ( is_numeric ( $slug ) ) {
    		// change to something more tangible otherwise leave alone
    		$my_post['post_name'] = $pTitle;
    	//}
    	
    	// Update the post into the database
    	wp_update_post( $my_post );
    	
    	// send quick email to tell me 
    	$pTitle = "New Post: " . $pTitle;
    	$pContent = do_shortcode( $pContent );
    	$headers = array( 'Content-Type: text/html; charset=UTF-8' );
    	wp_mail( "drama@encast.it", $pTitle, $pContent, $headers );
    
    	// rehook this function to prevent infinite looping
        add_action( 'acf/save_post', 'my_post_updater' );
    
    }
    add_action('acf/save_post', 'my_post_updater', 20);
    
    // adds some hashtags to posts to be publicized by jetpack
    add_filter( 'wpas_default_suffix', 'add_default_publicize_hashtag_suffix', 10, 4 );
    function add_default_publicize_hashtag_suffix() {
    	$default_tags = ' #castingcall #audition #actor';
    	return $default_tags;
    }
    
    ?>