web-dev-qa-db-fra.com

Publier une publication après un clic sur un lien

J'ai un formulaire de publication frontend (CF7), où l'utilisateur entre (entre autres données bien sûr) son email. Maintenant, je mets le statut en attente.

Ce que je veux, c’est que l’utilisateur obtienne un courrier avec un répondeur automatique, dans lequel se trouve le lien permettant de changer le statut en PUBLISH lorsque vous cliquez dessus. Existe-t-il une solution à ça? Autoresponder n'est pas le problème, je ne sais pas, comment configurer ce lien.

1
M P

Lorsque la publication est créée et définie sur pending, créez un identifiant unique pour la publication automatique, par exemple:

$unique = md5( $post->post_content );
add_post_meta( $post->ID, '_auto_publish', $unique );

Maintenant, créez un lien pour l'email:

$link = get_permalink( $post->ID );
$link = add_query_arg(
    array(
        'autopublish' => $unique,
        'pid'         => $post->ID
    ),
    $link
);

Envoyez ce lien dans votre courrier électronique à l'adresse de l'expéditeur:

print "<$link>";

Ensuite, surveillez les paramètres $_GET correspondants lorsque le destinataire clique sur le lien:

if ( isset ( $_GET[ 'autopublish' ] )
    and isset ( $_GET[ 'pid' ] )
    and is_numeric( $_GET[ 'pid' ] )
    and $post = get_post( $_GET[ 'pid' ] )
    and $_GET[ 'autopublish' ] === get_post_meta( $post->ID, '_auto_publish', TRUE )
    )
{
    $post->post_status = 'publish';
    wp_update_post( $post );
    delete_post_meta( $post->ID, '_auto_publish' );
}
1
fuxia