ap_vote_btn( int|object $post = null, bool $output = true )
Description #
Output or return voting button.
Parameters #
- $postint | object (Optional) Post ID or object. Default value: null
- $outputbool (Optional) Echo or return vote button. Default value: true
Source #
File: includes/votes.php
function ap_vote_btn( $post = null, $output = true ) { $post = ap_get_post( $post ); if ( ! $post || ( 'answer' === $post->post_type && ap_opt( 'disable_voting_on_answer' ) ) ) { return; } if ( 'question' === $post->post_type && ap_opt( 'disable_voting_on_question' ) ) { return; } $vote = is_user_logged_in() ? ap_get_vote( $post->ID, get_current_user_id(), 'vote' ) : false; $voted = $vote ? true : false; if ( $vote && '1' === $vote->vote_value ) { $type = 'vote_up'; } elseif ( $vote && '-1' === $vote->vote_value ) { $type = 'vote_down'; } else { $type = ''; } $data = array( 'post_id' => $post->ID, 'active' => $type, 'net' => ap_get_votes_net(), '__nonce' => wp_create_nonce( 'vote_' . $post->ID ), ); $upvote_message = sprintf( /* Translators: %s Question or Answer post type label for up voting the question or answer. */ __( 'Up vote this %s', 'anspress-question-answer' ), ( 'question' === $post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' ) ); $downvote_message = sprintf( /* Translators: %s Question or Answer post type label for down voting the question or answer. */ __( 'Down vote this %s', 'anspress-question-answer' ), ( 'question' === $post->post_type ) ? esc_html__( 'question', 'anspress-question-answer' ) : esc_html__( 'answer', 'anspress-question-answer' ) ); $html = ''; $html .= '<div id="vote_' . $post->ID . '" class="ap-vote net-vote" ap-vote="' . esc_js( wp_json_encode( $data ) ) . '">' . '<a class="apicon-thumb-up ap-tip vote-up' . ( $voted ? ' voted' : '' ) . ( $vote && 'vote_down' === $type ? ' disable' : '' ) . '" href="#" title="' . ( $vote && 'vote_down' === $type ? __( 'You have already voted', 'anspress-question-answer' ) : ( $voted ? __( 'Withdraw your vote', 'anspress-question-answer' ) : $upvote_message ) ) . '" ap="vote_up"></a>' . '<span class="net-vote-count" data-view="ap-net-vote" itemprop="upvoteCount" ap="votes_net">' . ap_get_votes_net() . '</span>'; if ( ( 'question' === $post->post_type && ! ap_opt( 'disable_down_vote_on_question' ) ) || ( 'answer' === $post->post_type && ! ap_opt( 'disable_down_vote_on_answer' ) ) ) { $html .= '<a data-tipposition="bottom center" class="apicon-thumb-down ap-tip vote-down' . ( $voted ? ' voted' : '' ) . ( $vote && 'vote_up' === $type ? ' disable' : '' ) . '" href="#" title="' . ( $vote && 'vote_up' === $type ? __( 'You have already voted', 'anspress-question-answer' ) : ( $voted ? __( 'Withdraw your vote', 'anspress-question-answer' ) : $downvote_message ) ) . '" ap="vote_down"></a>'; } $html .= '</div>'; /** * Allows overriding voting button HTML upload. * * @param string $html Vote button. * @param WP_Post $post WordPress post object. * @since 4.1.5 */ $html = apply_filters( 'ap_vote_btn_html', $html, $post ); if ( ! $output ) { return $html; } echo $html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped }
Expand full source code Collapse full source code View on GitHub: includes/votes.php:591
Add your comment