Title: Acceso a escribir y publicar posts después de realizar la compra
Last modified: 17 de junio de 2017

---

# Acceso a escribir y publicar posts después de realizar la compra

 *  [musiker81](https://es.wordpress.org/support/users/musiker81/)
 * (@musiker81)
 * [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/)
 * Hola a todos.
 * Es la primera vez que publico aquí y no sé muy bien si mi pregunta va exactamente
   aquí, si no es así pido disculpas.
 * Mi pregunta es ¿cómo se puede hacer para que el usuario solamente pueda acceder
   a escribir y publicar posts **después** de haber comprado un artículo en woocommerce,
   pero **no antes** de ello? He estado investigando un poco y creo que debería 
   usar la función is_checkout y quizá también publish_post, pero no sé muy bien
   cómo hacerlo porque tengo pocos conocimientos de programación y soy nuevo en 
   wordpress.
 * Muchas gracias por adelantado.
    -  Este debate fue modificado hace 9 años, 3 meses por [musiker81](https://es.wordpress.org/support/users/musiker81/).
    -  Este debate fue modificado hace 9 años, 3 meses por [musiker81](https://es.wordpress.org/support/users/musiker81/).
    -  Este debate fue modificado hace 9 años, 3 meses por [musiker81](https://es.wordpress.org/support/users/musiker81/).
    -  Este debate fue modificado hace 9 años, 3 meses por [musiker81](https://es.wordpress.org/support/users/musiker81/).

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)

 *  Moderador [José Arcos](https://es.wordpress.org/support/users/josearcos/)
 * (@josearcos)
 * [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/#post-60471)
 * Hola [@musiker81](https://es.wordpress.org/support/users/musiker81/), no creo
   que haya ningún plugin para esto, así que tendrás que crearlo tu mismo. Lo que
   te recomiendo que hagas es que crees un producto virtual, llámalo como quieras.
   Luego, tras comprobar que un usuario ha comprado ese producto, cámbiale el rol
   a ese usuario a Autor por ejemplo.
    El gancho que te ayudará a saber si un usuario
   ha comprado un producto es: [woocommerce_payment_complete](http://hookr.io/actions/woocommerce_payment_complete/)
 * Ese gancho te proporciona el parámetro $order_id para utilizarlo en la función.
   Dentro de esa función obtén el usuario que ha realizado dicha orden y cámbiale
   el rol.
 * Espero que te sirva.
 * Saludos.
 *  Iniciador del debate [musiker81](https://es.wordpress.org/support/users/musiker81/)
 * (@musiker81)
 * [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/#post-60559)
 * Hola [@josearcos](https://es.wordpress.org/support/users/josearcos/), muchas 
   gracias por tu amplia respuesta. Lo he intentado de esta forma pero no hace nada:
 *     ```
       add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
       function so_payment_complete( $order_id ){
           $order = wc_get_order( $order_id );
           $user = $order->get_user();
           if( $user ){
   
              $user = new WP_User( $user_id );
              $user->add_cap( 'publish_post' );
   
           }
       }
       ```
   
 *  [Elías](https://es.wordpress.org/support/users/eliasgdj/)
 * (@eliasgdj)
 * [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/#post-60560)
 * En ese IF falta una lado de la condición y el operador 😅
 *  Iniciador del debate [musiker81](https://es.wordpress.org/support/users/musiker81/)
 * (@musiker81)
 * [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/#post-60612)
 * Gracias Elías, es cierto, pero ahora lo he intentado de esta forma y tampoco 
   funciona. No da fallo, pero no hace nada. He pensado que quizá puede ser porque
   estoy simulando una compra (aunque llego hasta el final) en vez de una compra
   real, ¿es posible?. Por cierto, lo estoy escribiendo en el archivo functions.
   php de mi tema, supongo que será ahí el sitio correcto.
 *     ```
       add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
       function so_payment_complete( $order_id ){
           $order = wc_get_order( $order_id );
           $user = $order->get_user();
           if( empty($user) ){
       echo "La variable está vacía"; 
       }else{       
       $user->add_cap( 'publish_posts' );
           }
       } 
       ```
   
    -  Esta respuesta fue modificada hace 9 años, 3 meses por [musiker81](https://es.wordpress.org/support/users/musiker81/).

Viendo 4 respuestas - de la 1 a la 4 (de un total de 4)

 El debate ‘Acceso a escribir y publicar posts después de realizar la compra’ está
cerrado a nuevas respuestas.

## Etiquetas

 * [acceso](https://es.wordpress.org/support/topic-tag/acceso/)
 * [permisos](https://es.wordpress.org/support/topic-tag/permisos/)
 * [publicar](https://es.wordpress.org/support/topic-tag/publicar/)

 * En: [WooCommerce](https://es.wordpress.org/support/forum/plugins-y-hacks/woocommerce/)
 * 4 respuestas
 * 3 participantes
 * Última respuesta de: [musiker81](https://es.wordpress.org/support/users/musiker81/)
 * Última actividad: [hace 9 años, 3 meses](https://es.wordpress.org/support/topic/acceso-a-escribir-y-publicar-posts-despues-de-realizar-la-compra/#post-60612)
 * Estado: sin resolver

## Debates

### Debates populares

### Debates sin respuestas

### Debates que no son soporte

### Debates resueltos

### Debates no resueltos

### Todos los debates
