in admin/class-amazonpolly-admin.php [2086:2150]
private function get_price_message_for_update_all() {
$post_types_supported = $this->amazon_polly_get_posttypes_array();
$number_of_characters = 0;
$posts_per_page = apply_filters( 'amazon_polly_posts_per_page', 5 );
$count_posts = wp_count_posts()->publish;
$max_count_posts = 100;
// Retrieving the number of characters in all posts.
$paged = 0;
$post_count = 0;
do {
$paged++;
$wp_query = new WP_Query(
array(
'posts_per_page' => $posts_per_page,
'post_type' => $post_types_supported,
'fields' => 'ids',
'paged' => $paged,
)
);
$number_of_posts = $wp_query->max_num_pages;
while ( $wp_query->have_posts() ) {
$post_count++;
$wp_query->the_post();
$post_id = get_the_ID();
$clean_text = $this->clean_text( $post_id );
$post_sentences = $this->break_text( $clean_text );
if ( ! empty( $post_sentences ) ) {
foreach ( $post_sentences as $sentence ) {
$sentence = str_replace( '**AMAZONPOLLY*SSML*BREAK*time=***1s***SSML**', '', $sentence );
$sentence = str_replace( '**AMAZONPOLLY*SSML*BREAK*time=***500ms***SSML**', '', $sentence );
$number_of_characters += strlen( $sentence );
}
}
}
// If we reached the number of posts which we wanted to read, we stop
// reading next posts.
if ( $post_count >= $max_count_posts ) {
break;
}
} while ( $paged < $number_of_posts );
// Price for converting single character according to Amazon Polly pricing.
$amazon_polly_price = 0.000004;
// Estimating average number of characters per post.
if ( 0 !== $post_count ) {
$post_chars_count_avg = $number_of_characters / $post_count;
} else {
$post_chars_count_avg = 0;
}
// Estimating the total price of convertion of all posts.
$total_price = $amazon_polly_price * $count_posts * $post_chars_count_avg;
$message = 'You are about to convert ' . number_format( $count_posts, 0, '.', ',' ) . ' pieces of text-based content, which totals approximately ' . number_format( $number_of_characters, 0, '.', ',' ) . ' characters. Based on the Amazon Polly pricing ($4 dollars per 1 million characters) it will cost you about $' . $total_price . ' to convert all of your content into to speech-based audio. Some or all of your costs might be covered by the Free Tier (conversion of 5 million characters per month for free, for the first 12 months, starting from the first request for speech). Learn more https://aws.amazon.com/polly/';
return $message;
}