HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux sci 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: tpdc (1002)
PHP: 7.4.3-4ubuntu2.29
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/nsci/wp-content/plugins/penci-review/inc/shortcodes.php
<?php
if( ! defined( 'ABSPATH' ) ) {
	exit;
}

/* Don't run the shortcode inside dashboard */
if( is_admin() ){
	return;
}

/**
 * Penci review Shortcode
 * Use penci_review to display the review on single a post
 */
function penci_review_shortcode_function( $atts, $content = null ) {
	extract( shortcode_atts( array(
		'id' => ''
	), $atts ) );

	$review_id = get_the_ID();
	if ( ! empty( $id ) && is_numeric( $id ) ) {
		$review_id = $id;
	}

	// Get review meta
	//$review_type = get_theme_mod('penci_review_type') ? get_theme_mod('penci_review_type') : 'Product';
	//$review_edit = get_post_meta( $review_id, 'penci_review_etype', true );
	//if( $review_edit ) { $review_type = $review_edit; }
	$review_title = get_post_meta( $review_id, 'penci_review_title', true );
	$review_des = get_post_meta( $review_id, 'penci_review_des', true );
	$review_1 = get_post_meta( $review_id, 'penci_review_1', true );
	$review_1num = get_post_meta( $review_id, 'penci_review_1_num', true );
	$review_2 = get_post_meta( $review_id, 'penci_review_2', true );
	$review_2num = get_post_meta( $review_id, 'penci_review_2_num', true );
	$review_3 = get_post_meta( $review_id, 'penci_review_3', true );
	$review_3num = get_post_meta( $review_id, 'penci_review_3_num', true );
	$review_4 = get_post_meta( $review_id, 'penci_review_4', true );
	$review_4num = get_post_meta( $review_id, 'penci_review_4_num', true );
	$review_5 = get_post_meta( $review_id, 'penci_review_5', true );
	$review_5num = get_post_meta( $review_id, 'penci_review_5_num', true );
	
	$review_6 = get_post_meta( $review_id, 'penci_review_6', true );
	$review_6num = get_post_meta( $review_id, 'penci_review_6_num', true );
	$review_7 = get_post_meta( $review_id, 'penci_review_7', true );
	$review_7num = get_post_meta( $review_id, 'penci_review_7_num', true );
	$review_8 = get_post_meta( $review_id, 'penci_review_8', true );
	$review_8num = get_post_meta( $review_id, 'penci_review_8_num', true );
	$review_9 = get_post_meta( $review_id, 'penci_review_9', true );
	$review_9num = get_post_meta( $review_id, 'penci_review_9_num', true );
	$review_10 = get_post_meta( $review_id, 'penci_review_10', true );
	$review_10num = get_post_meta( $review_id, 'penci_review_10_num', true );
	
	$review_good = get_post_meta( $review_id, 'penci_review_good', true );
	$review_bad = get_post_meta( $review_id, 'penci_review_bad', true );

	// Turn review good and bad into an array
	$review_good_array = '';
	$review_bad_array = '';
	if( $review_good ):
		$review_good_array = preg_split( '/\r\n|[\r\n]/', $review_good );
	endif;
	if( $review_bad ):
		$review_bad_array = preg_split( '/\r\n|[\r\n]/', $review_bad );
	endif;

	// Global score and based number point
	$total_score = 0;
	$total_num = 0;

	$review_meta        = get_post_meta( $review_id, 'penci_review_meta', true );
	$review_ct_image    = isset( $review_meta['penci_review_ct_image'] ) ? $review_meta['penci_review_ct_image'] : '';
	$review_address     = isset( $review_meta['penci_review_address'] ) ? $review_meta['penci_review_address'] : '';
	$review_phone       = isset( $review_meta['penci_review_phone'] ) ? $review_meta['penci_review_phone'] : '';
	$review_website     = isset( $review_meta['penci_review_website'] ) ? $review_meta['penci_review_website'] : '';
	$review_price       = isset( $review_meta['penci_review_price'] ) ? $review_meta['penci_review_price'] : '';
	$review_linkbuy     = isset( $review_meta['penci_review_linkbuy'] ) ? $review_meta['penci_review_linkbuy'] : '';
	$review_textbuy     = isset( $review_meta['penci_review_textbuy'] ) ? $review_meta['penci_review_textbuy'] : '';
	$schema_markup_type = isset( $review_meta['penci_review_schema_markup'] ) ? $review_meta['penci_review_schema_markup'] : '';
	$img_size_pre       = isset( $review_meta['penci_review_img_size'] ) ? $review_meta['penci_review_img_size'] : '';

	$schema_options_val = get_post_meta( $review_id, 'penci_review_schema_options', true );
	$schema_type_val    = isset( $schema_options_val[ $schema_markup_type ] ) ? $schema_options_val[ $schema_markup_type ] : array();

	// Hide featured image
	$hide_img     = penci_predata_customize_pmeta( $review_meta, 'penci_rv_hide_featured_img', 'penci_rv_hide_featured_img' );
	$hide_schema   = penci_predata_customize_pmeta( $review_meta, 'penci_review_hide_schema', 'penci_rv_hide_schema'  );
	ob_start(); ?>

	<aside class="wrapper-penci-review">
		<div class="penci-review">
			<div class="penci-review-container penci-review-count">
				<?php
				$img_size = get_theme_mod( 'penci_review_img_size', 'thumbnail' );
				if ( $img_size_pre ) {
					$img_size = $img_size_pre;
				}

				$url_review_ct_image = wp_get_attachment_image_url( $review_ct_image, $img_size );
				if ( ! $url_review_ct_image && has_post_thumbnail( $review_id ) ) {
					$url_review_ct_image = get_the_post_thumbnail_url( $review_id, $img_size );
				}

				if ( $url_review_ct_image && ! $hide_img ): ?>
				<div class="penci-review-thumb">
					<img src="<?php echo $url_review_ct_image; ?>" alt="<?php echo esc_attr( $review_title ); ?>"/>
				</div>
				<?php endif; ?>
				<?php if ( $review_title ) : ?>
					<h4 class="penci-review-title">
						<a href="<?php the_permalink(); ?>">
							<span><?php echo $review_title; ?></span>
						</a>
					</h4>
				<?php endif; ?>
				<div class="penci-review-metas">
					<?php
					if( $review_price && ! get_theme_mod( 'penci_review_hide_price' ) ){
						$price_text = penci_review_tran_setting( 'penci_review_price_text' );
						echo '<div class="penci-review-meta penci-review-price"><i>' . $price_text . '</i> ' . $review_price . '</div>';
					}
					if( $review_phone && ! get_theme_mod( 'penci_review_hide_phone' ) ){
						echo '<div class="penci-review-meta penci-review-phone"><i class="fa fa-phone"></i><a href="tel:' . $review_phone . '">' . $review_phone . '</a></div>';
					}
					if( $review_address && ! get_theme_mod( 'penci_review_hide_address' ) ){
						echo '<div class="penci-review-meta penci-review-address"><i class="fa fa-map-marker"></i>' . $review_address . '</div>';
					}
					if( $review_website && ! get_theme_mod( 'penci_review_hide_website' ) ){
						echo '<div class="penci-review-meta penci-review-website"><i class="fa fa-globe"></i><a href="' . esc_url( $review_website ) . '" target="_blank">' . $review_website . '</a></div>';
					}
					if ( $review_textbuy && ! get_theme_mod( 'penci_review_hide_btnbuy' ) ) {
						$prefix = $suffix = 'div';

						if ( $review_linkbuy ) {
							$prefix = 'a href="' . esc_url( $review_linkbuy ) . '" ';
							$suffix = 'a';
						}
						echo '<div class="penci-review-btnbuyw"><' . $prefix . ' class="penci-review-btnbuy button" target="_blank">' . $review_textbuy . '</' . $suffix . '></div>';
					}
					?>
				</div>
				<?php if( ! $hide_schema ): ?>
					<div class="penci-review-schemas">
						<?php
						$schema_fields = Penci_Review_Schema_Markup::get_schema_types( $schema_markup_type );
						if( $schema_fields ){
							foreach ( $schema_fields as $schema_field ){
								if( isset( $schema_type_val[$schema_field['name']] ) && $schema_type_val[$schema_field['name']] ){
									echo '<div class="penci-review-schema"><strong>' . $schema_field['label'] . ' : </strong>' . $schema_type_val[$schema_field['name']] . '</div>';
								}
							}
						}
						?>
					</div>
				<?php endif; ?>
				<?php if ( $review_des ) : ?>
					<div class="penci-review-desc"><p><?php echo $review_des; ?></p></div>
				<?php endif; ?>
				<span class="penci-review-hauthor" style="display: none !important;"><span><?php bloginfo( 'name' ); ?></span></span>
				<ul class="penci-review-number">
					<?php if( $review_1 && $review_1num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_1; ?></div>
								<div class="penci-review-score"><?php echo $review_1num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_1num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>

					<?php if( $review_2 && $review_2num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_2; ?></div>
								<div class="penci-review-score"><?php echo $review_2num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_2num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>

					<?php if( $review_3 && $review_3num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_3; ?></div>
								<div class="penci-review-score"><?php echo $review_3num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_3num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>

					<?php if( $review_4 && $review_4num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_4; ?></div>
								<div class="penci-review-score"><?php echo $review_4num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_4num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>

					<?php if( $review_5 && $review_5num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_5; ?></div>
								<div class="penci-review-score"><?php echo $review_5num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_5num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
					
					<?php if( $review_6 && $review_6num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_6; ?></div>
								<div class="penci-review-score"><?php echo $review_6num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_6num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
					
					<?php if( $review_7 && $review_7num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_7; ?></div>
								<div class="penci-review-score"><?php echo $review_7num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_7num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
					
					<?php if( $review_8 && $review_8num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_8; ?></div>
								<div class="penci-review-score"><?php echo $review_8num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_8num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
					
					<?php if( $review_9 && $review_9num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_9; ?></div>
								<div class="penci-review-score"><?php echo $review_9num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_9num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
					
					<?php if( $review_10 && $review_10num ): ?>
						<li>
							<div class="penci-review-text">
								<div class="penci-review-point"><?php echo $review_10; ?></div>
								<div class="penci-review-score"><?php echo $review_10num; ?></div>
							</div>
							<div class="penci-review-process">
								<span class="penci-process-run" data-width="<?php echo number_format( $review_10num, 1, '.', '' ); ?>"></span>
							</div>
						</li>
					<?php endif; ?>
				</ul>
			</div>
			<div class="penci-review-container penci-review-point">
				<div class="penci-review-row">
					<?php if ( $review_good_array || $review_bad_array ) : ?>
						<div class="penci-review-stuff">
							<div class="penci-review-row<?php if ( ! $review_good_array || ! $review_bad_array ) : echo ' full-w'; endif; ?>">
							<?php if ( $review_good_array ) : ?>
								<div class="penci-review-good">
									<h5 class="penci-review-title"><?php if ( get_theme_mod( 'penci_review_good_text' ) ) { echo do_shortcode( get_theme_mod( 'penci_review_good_text' ) );} else { esc_html_e( 'The Goods', 'soledad' ); } ?></h5>
									<ul>
										<?php foreach ( $review_good_array as $good ) : ?>
											<?php if ( $good ) : ?>
												<li><?php echo $good; ?></li>
											<?php endif; ?>
										<?php endforeach; ?>
									</ul>
								</div>
							<?php endif; ?>
							<?php if ( $review_bad_array ) : ?>
								<div class="penci-review-good penci-review-bad">
									<h5 class="penci-review-title"><?php if ( get_theme_mod( 'penci_review_bad_text' ) ) { echo do_shortcode( get_theme_mod( 'penci_review_bad_text' ) );} else { esc_html_e( 'The Bads', 'soledad' ); } ?></h5>
									<ul>
										<?php foreach ( $review_bad_array as $bad ) : ?>
											<?php if ( $bad ) : ?>
												<li><?php echo $bad; ?></li>
											<?php endif; ?>
										<?php endforeach; ?>
									</ul>
								</div>
							<?php endif; ?>
							</div>
						</div>
					<?php endif; ?>
					<div class="penci-review-average<?php if ( ! $review_good_array && ! $review_bad_array ) : echo ' full-w'; endif; ?>">
						<div class="penci-review-score-total<?php if( get_theme_mod( 'penci_review_hide_average' ) ): echo ' only-score'; endif; ?>">
							<div class="penci-review-score-num">
								<?php $total_average = penci_get_review_average_score( $review_id ); echo number_format( $total_average, 1, '.', '' ); ?>
								<span style="display: none !important;"><?php echo ( $total_average/2 ); ?></span>
								<span style="display: none !important;">5</span>
							</div>
							<?php if( ! get_theme_mod( 'penci_review_hide_average' ) ): ?>
							<span><?php if ( get_theme_mod( 'penci_review_average_text' ) ) { echo do_shortcode( get_theme_mod( 'penci_review_average_text' ) );} else { esc_html_e( 'Average Score', 'soledad' ); } ?></span>
							<?php endif; ?>
						</div>
					</div>
				</div>
			</div>
		</div>
	</aside>
	<?php
	return ob_get_clean();
}

add_shortcode( 'penci_review', 'penci_review_shortcode_function' );