AnsPress_Hooks::trash_post_action( integer $post_id )
Description #
If a question is sent to trash, then move its answers to trash as well
Parameters #
- $post_idinteger (Required) Post ID.
Changelog #
| Version | Description |
|---|---|
| 4.1.6 | Delete cache for ap_is_answered. |
| 4.1.2 | Removed @see ap_update_post_activity_meta(). |
| 2.0.0 | Introduced. |
Source #
File: includes/hooks.php
public static function trash_post_action( $post_id ) {
$post = ap_get_post( $post_id );
if ( 'question' === $post->post_type ) {
do_action( 'ap_trash_question', $post->ID, $post );
// Save current post status so that it can be restored.
update_post_meta( $post->ID, '_ap_last_post_status', $post->post_status );
//@codingStandardsIgnoreStart
$ans = get_posts( array(
'post_type' => 'answer',
'post_status' => 'publish',
'post_parent' => $post_id,
'showposts' => -1,
));
//@codingStandardsIgnoreEnd
if ( ap_opt( 'trashing_question_with_answer' ) && $ans ) {
ap_send_json(
array(
'success' => false,
'snackbar' => array(
'message' => esc_html__( 'Sorry, you are not allowed to trash the question if there are answers available.', 'anspress-question-answer' ),
),
)
);
}
foreach ( (array) $ans as $p ) {
$selcted_answer = ap_selected_answer();
if ( $selcted_answer === $p->ID ) {
ap_unset_selected_answer( $p->post_parent );
}
wp_trash_post( $p->ID );
}
}
if ( 'answer' === $post->post_type ) {
/**
* Triggered before trashing an answer.
*
* @param integer $post_id Answer ID.
* @param object $post Post object.
*/
do_action( 'ap_trash_answer', $post->ID, $post );
// Save current post status so that it can be restored.
update_post_meta( $post->ID, '_ap_last_post_status', $post->post_status );
ap_update_answers_count( $post->post_parent );
}
}
Expand full source code Collapse full source code View on GitHub: includes/hooks.php:294
Add your comment