Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-revie.../includes
File: functions.php
*/
[2000] Fix | Delete
function wp_review_add_admin_columns() {
[2001] Fix | Delete
$post_types = get_post_types( array( 'public' => true ), 'names' );
[2002] Fix | Delete
$excluded_post_types = apply_filters( 'wp_review_excluded_post_types', array( 'attachment' ) );
[2003] Fix | Delete
$allowed_post_types = array_diff( $post_types, $excluded_post_types );
[2004] Fix | Delete
foreach ( $allowed_post_types as $key => $value ) {
[2005] Fix | Delete
// Add post list table column.
[2006] Fix | Delete
add_filter( 'manage_' . $value . '_posts_columns', 'wp_review_post_list_column' );
[2007] Fix | Delete
// Post list table column content.
[2008] Fix | Delete
add_action( 'manage_' . $value . '_posts_custom_column', 'wp_review_post_list_column_content', 10, 2 );
[2009] Fix | Delete
}
[2010] Fix | Delete
}
[2011] Fix | Delete
add_action( 'init', 'wp_review_add_admin_columns' );
[2012] Fix | Delete
[2013] Fix | Delete
/**
[2014] Fix | Delete
* Adds posts list columns.
[2015] Fix | Delete
*
[2016] Fix | Delete
* @param array $columns Posts list columns.
[2017] Fix | Delete
* @return array
[2018] Fix | Delete
*/
[2019] Fix | Delete
function wp_review_post_list_column( $columns ) {
[2020] Fix | Delete
$columns['wp_review_rating'] = __( 'Rating', 'wp-review' );
[2021] Fix | Delete
return $columns;
[2022] Fix | Delete
}
[2023] Fix | Delete
[2024] Fix | Delete
/**
[2025] Fix | Delete
* Shows posts list column content.
[2026] Fix | Delete
*
[2027] Fix | Delete
* @param string $column_name Column name.
[2028] Fix | Delete
* @param int $post_id Post ID.
[2029] Fix | Delete
*/
[2030] Fix | Delete
function wp_review_post_list_column_content( $column_name, $post_id ) {
[2031] Fix | Delete
if ( 'wp_review_rating' === $column_name ) {
[2032] Fix | Delete
$total = get_post_meta( $post_id, 'wp_review_total', true );
[2033] Fix | Delete
if ( $total ) {
[2034] Fix | Delete
$args = array(
[2035] Fix | Delete
'bar_text_color_from' => 'inactive_color',
[2036] Fix | Delete
);
[2037] Fix | Delete
echo wp_review_rating( $total, $post_id, $args );
[2038] Fix | Delete
} else {
[2039] Fix | Delete
echo '<span class="no-rating">' . __( 'No Rating', 'wp-review' ) . '</span>';
[2040] Fix | Delete
}
[2041] Fix | Delete
}
[2042] Fix | Delete
}
[2043] Fix | Delete
[2044] Fix | Delete
/**
[2045] Fix | Delete
* Ignores migrate notice.
[2046] Fix | Delete
*/
[2047] Fix | Delete
function wp_review_migrate_notice_ignore() {
[2048] Fix | Delete
global $current_user;
[2049] Fix | Delete
$user_id = $current_user->ID;
[2050] Fix | Delete
/* If user clicks to ignore the notice, add that to their user meta */
[2051] Fix | Delete
if ( isset( $_GET['wp_review_migrate_notice_ignore'] ) && '1' == $_GET['wp_review_migrate_notice_ignore'] ) {
[2052] Fix | Delete
add_user_meta( $user_id, 'wp_review_migrate_notice_ignore', 'true', true );
[2053] Fix | Delete
}
[2054] Fix | Delete
}
[2055] Fix | Delete
add_action( 'admin_init', 'wp_review_migrate_notice_ignore' );
[2056] Fix | Delete
[2057] Fix | Delete
[2058] Fix | Delete
/**
[2059] Fix | Delete
* Shows migrate notice.
[2060] Fix | Delete
*/
[2061] Fix | Delete
function wp_review_migrate_notice() {
[2062] Fix | Delete
// Migrate.
[2063] Fix | Delete
global $wpdb, $current_user;
[2064] Fix | Delete
$user_id = $current_user->ID;
[2065] Fix | Delete
if ( get_user_meta( $user_id, 'wp_review_migrate_notice_ignore' ) ) {
[2066] Fix | Delete
return;
[2067] Fix | Delete
}
[2068] Fix | Delete
[2069] Fix | Delete
$has_migrated = get_option( 'wp_review_has_migrated', false );
[2070] Fix | Delete
if ( $has_migrated ) {
[2071] Fix | Delete
return;
[2072] Fix | Delete
}
[2073] Fix | Delete
[2074] Fix | Delete
$current_blog_id = get_current_blog_id();
[2075] Fix | Delete
$rows_left = 0;
[2076] Fix | Delete
$migrated_rows = get_option( 'wp_review_migrated_rows', 0 );
[2077] Fix | Delete
if ( ! $has_migrated && $wpdb->get_var( "SHOW TABLES LIKE '{$wpdb->base_prefix}mts_wp_reviews'" ) == "{$wpdb->base_prefix}mts_wp_reviews" ) {
[2078] Fix | Delete
// Table exists and not migrated (fully) yet.
[2079] Fix | Delete
$total_rows = $wpdb->get_var( 'SELECT COUNT(*) FROM ' . $wpdb->base_prefix . 'mts_wp_reviews WHERE blog_id = ' . $current_blog_id ); // WPCS: unprepared SQL ok.
[2080] Fix | Delete
$rows_left = $total_rows - $migrated_rows;
[2081] Fix | Delete
}
[2082] Fix | Delete
[2083] Fix | Delete
if ( ! $rows_left ) {
[2084] Fix | Delete
return;
[2085] Fix | Delete
}
[2086] Fix | Delete
?>
[2087] Fix | Delete
<div class="updated notice-info wp-review-notice">
[2088] Fix | Delete
<p>
[2089] Fix | Delete
<?php
[2090] Fix | Delete
// translators: settings link.
[2091] Fix | Delete
printf( __( 'Thank you for updating WP Review Pro. Your existing user ratings will show up after importing them in %s.', 'wp-review' ), '<a href="' . admin_url( 'options-general.php?page=wp-review-pro%2Fadmin%2Foptions.php#migrate' ) . '">' . __( 'Settings &gt; WP Review Pro &gt; Migrate Ratings', 'wp-review' ) . '</a>' );
[2092] Fix | Delete
?>
[2093] Fix | Delete
</p>
[2094] Fix | Delete
<a class="notice-dismiss" href="<?php echo esc_url( add_query_arg( 'wp_review_migrate_notice_ignore', '1' ) ); ?>"></a>
[2095] Fix | Delete
</div>
[2096] Fix | Delete
<?php
[2097] Fix | Delete
}
[2098] Fix | Delete
add_action( 'admin_notices', 'wp_review_migrate_notice' );
[2099] Fix | Delete
[2100] Fix | Delete
/**
[2101] Fix | Delete
* Gets schema.
[2102] Fix | Delete
*
[2103] Fix | Delete
* @param array $review Review data.
[2104] Fix | Delete
* @return string
[2105] Fix | Delete
*/
[2106] Fix | Delete
function wp_review_get_schema( $review ) {
[2107] Fix | Delete
if ( 'none' === $review['schema'] ) {
[2108] Fix | Delete
return '';
[2109] Fix | Delete
}
[2110] Fix | Delete
[2111] Fix | Delete
$output = '';
[2112] Fix | Delete
[2113] Fix | Delete
$nesting_mode = apply_filters( 'wp_review_schema_nesting_mode', 'type' );// type, rating, none.
[2114] Fix | Delete
[2115] Fix | Delete
// Force rating nesting in certain types ( weird results in testing tool otherwise ).
[2116] Fix | Delete
if ( in_array( $review['schema'], apply_filters( 'wp_review_schema_force_nested_rating_types', array( 'Movie', 'Book' ) ), true ) ) {
[2117] Fix | Delete
$nesting_mode = 'rating';
[2118] Fix | Delete
}
[2119] Fix | Delete
[2120] Fix | Delete
// If type requires nested aggregateRating don't nest it in aggregateRating.
[2121] Fix | Delete
if ( in_array( $review['schema'], apply_filters( 'wp_review_schema_force_nested_user_rating_types', array( 'SoftwareApplication', 'Recipe' ) ), true ) && in_array( $review['rating_schema'], array( 'visitors', 'comments' ), true ) ) {
[2122] Fix | Delete
$nesting_mode = 'rating';
[2123] Fix | Delete
}
[2124] Fix | Delete
[2125] Fix | Delete
switch ( $nesting_mode ) {
[2126] Fix | Delete
[2127] Fix | Delete
case 'type': // schema.org typed element ( Movie, Recipe, etc) nested in review/aggregateRating type.
[2128] Fix | Delete
if ( in_array( $review['rating_schema'], array( 'visitors', 'comments' ), true ) ) {
[2129] Fix | Delete
$output .= wp_review_get_schema_user_rating( $review, true );
[2130] Fix | Delete
} else {
[2131] Fix | Delete
$output .= wp_review_get_schema_review_rating( $review, true );
[2132] Fix | Delete
}
[2133] Fix | Delete
break;
[2134] Fix | Delete
[2135] Fix | Delete
case 'rating': // review/aggregateRating type nested in specific type ( Movie, Recipe, etc).
[2136] Fix | Delete
$output .= wp_review_get_schema_type( $review, true );
[2137] Fix | Delete
break;
[2138] Fix | Delete
[2139] Fix | Delete
case 'none': // separated reviewed item type ( Movie, Recipe, etc) and review/aggregateRating.
[2140] Fix | Delete
$output .= wp_review_get_schema_type( $review );
[2141] Fix | Delete
if ( in_array( $review['rating_schema'], array( 'visitors', 'comments' ), true ) ) {
[2142] Fix | Delete
$output .= wp_review_get_schema_user_rating( $review );
[2143] Fix | Delete
} else {
[2144] Fix | Delete
$output .= wp_review_get_schema_review_rating( $review );
[2145] Fix | Delete
}
[2146] Fix | Delete
break;
[2147] Fix | Delete
}
[2148] Fix | Delete
[2149] Fix | Delete
return apply_filters( 'wp_review_get_schema', $output, $review );
[2150] Fix | Delete
[2151] Fix | Delete
}
[2152] Fix | Delete
[2153] Fix | Delete
/**
[2154] Fix | Delete
* Gets review schema.
[2155] Fix | Delete
*
[2156] Fix | Delete
* @param array $review Review data.
[2157] Fix | Delete
* @param bool $nested_rating Is nested rating or not.
[2158] Fix | Delete
* @return string
[2159] Fix | Delete
*/
[2160] Fix | Delete
function wp_review_get_schema_type( $review, $nested_rating = false ) {
[2161] Fix | Delete
[2162] Fix | Delete
if ( empty( $review['schema'] ) || 'Thing' === $review['schema'] || ! isset( $review['schema_data'] ) ) {
[2163] Fix | Delete
return;
[2164] Fix | Delete
}
[2165] Fix | Delete
[2166] Fix | Delete
$args = array(
[2167] Fix | Delete
'@context' => 'http://schema.org',
[2168] Fix | Delete
'@type' => $review['schema'],
[2169] Fix | Delete
);
[2170] Fix | Delete
[2171] Fix | Delete
$ldjson_data = wp_review_get_ldjson_data( $review['schema'], $review['schema_data'][ $review['schema'] ], $review );
[2172] Fix | Delete
if ( $ldjson_data ) {
[2173] Fix | Delete
$args += $ldjson_data;
[2174] Fix | Delete
} else {
[2175] Fix | Delete
$schemas = wp_review_schema_types();
[2176] Fix | Delete
$fields = isset( $schemas[ $review['schema'] ] ) && isset( $schemas[ $review['schema'] ]['fields'] ) ? $schemas[ $review['schema'] ]['fields'] : array();
[2177] Fix | Delete
[2178] Fix | Delete
foreach ( $fields as $key => $data ) {
[2179] Fix | Delete
if ( ! empty( $data['omit'] ) ) {
[2180] Fix | Delete
continue;
[2181] Fix | Delete
}
[2182] Fix | Delete
$name = ! empty( $data['custom_name'] ) ? strip_tags( $data['custom_name'] ) : $data['name'];
[2183] Fix | Delete
[2184] Fix | Delete
if ( isset( $review['schema_data'][ $review['schema'] ][ $name ] ) && ! empty( $review['schema_data'][ $review['schema'] ][ $name ] ) ) {
[2185] Fix | Delete
if ( isset( $data['multiline'] ) && $data['multiline'] ) {
[2186] Fix | Delete
$review['schema_data'][ $review['schema'] ][ $name ] = preg_split( '/\r\n|[\r\n]/', $review['schema_data'][ $review['schema'] ][ $name ] );
[2187] Fix | Delete
}
[2188] Fix | Delete
if ( isset( $data['part_of'] ) ) {
[2189] Fix | Delete
$args[ $data['part_of'] ]['@type'] = $data['@type'];
[2190] Fix | Delete
if ( 'image' === $data['type'] ) {
[2191] Fix | Delete
$args[ $data['part_of'] ][ $name ] = $review['schema_data'][ $review['schema'] ][ $name ]['url'];
[2192] Fix | Delete
} elseif ( in_array( $name, apply_filters( 'wp_reviev_schema_ISO_8601_duration_items', array( 'prepTime', 'cookTime', 'totalTime', 'duration' ) ) ) ) { // phpcs:ignore
[2193] Fix | Delete
$args[ $data['part_of'] ][ $name ] = 'PT' . $review['schema_data'][ $review['schema'] ][ $name ];
[2194] Fix | Delete
} else {
[2195] Fix | Delete
$args[ $data['part_of'] ][ $name ] = $review['schema_data'][ $review['schema'] ][ $name ];
[2196] Fix | Delete
}
[2197] Fix | Delete
} else {
[2198] Fix | Delete
if ( 'image' === $data['type'] ) {
[2199] Fix | Delete
$args[ $name ] = $review['schema_data'][ $review['schema'] ][ $name ]['url'];
[2200] Fix | Delete
} elseif ( in_array( $name, apply_filters( 'wp_reviev_schema_ISO_8601_duration_items', array( 'prepTime', 'cookTime', 'totalTime', 'duration' ) ) ) ) { // phpcs:ignore
[2201] Fix | Delete
$args[ $name ] = 'PT' . $review['schema_data'][ $review['schema'] ][ $name ];
[2202] Fix | Delete
} else {
[2203] Fix | Delete
$args[ $name ] = $review['schema_data'][ $review['schema'] ][ $name ];
[2204] Fix | Delete
}
[2205] Fix | Delete
}
[2206] Fix | Delete
}
[2207] Fix | Delete
}
[2208] Fix | Delete
}
[2209] Fix | Delete
[2210] Fix | Delete
// Nested aggregateRating is required in some types ( SoftwareApplication, Recipe ).
[2211] Fix | Delete
$force_user_rating = in_array( $review['schema'], apply_filters( 'wp_review_schema_force_nested_user_rating_types', array( 'SoftwareApplication', 'Recipe' ) ), true );
[2212] Fix | Delete
if ( $force_user_rating ) {
[2213] Fix | Delete
if ( $review['user_review'] || $review['comments_review'] ) {
[2214] Fix | Delete
$aggregate_rating = wp_review_get_schema_nested_user_rating_args( $review );
[2215] Fix | Delete
if ( ! empty( $aggregate_rating ) ) {
[2216] Fix | Delete
$args['aggregateRating'] = $aggregate_rating;
[2217] Fix | Delete
}
[2218] Fix | Delete
}
[2219] Fix | Delete
if ( 'author' === $review['rating_schema'] ) {
[2220] Fix | Delete
$review_rating = wp_review_get_schema_nested_review_args( $review );
[2221] Fix | Delete
if ( ! empty( $review_rating ) ) {
[2222] Fix | Delete
$args['review'] = $review_rating;
[2223] Fix | Delete
}
[2224] Fix | Delete
}
[2225] Fix | Delete
} elseif ( $nested_rating ) {
[2226] Fix | Delete
if ( in_array( $review['rating_schema'], array( 'visitors', 'comments' ), true ) ) {
[2227] Fix | Delete
if ( $review['user_review'] || $review['comments_review'] ) {
[2228] Fix | Delete
$aggregate_rating = wp_review_get_schema_nested_user_rating_args( $review );
[2229] Fix | Delete
if ( ! empty( $aggregate_rating ) ) {
[2230] Fix | Delete
$args['aggregateRating'] = $aggregate_rating;
[2231] Fix | Delete
}
[2232] Fix | Delete
}
[2233] Fix | Delete
} else {
[2234] Fix | Delete
$review_rating = wp_review_get_schema_nested_review_args( $review );
[2235] Fix | Delete
if ( ! empty( $review_rating ) ) {
[2236] Fix | Delete
$args['review'] = $review_rating;
[2237] Fix | Delete
}
[2238] Fix | Delete
}
[2239] Fix | Delete
}
[2240] Fix | Delete
[2241] Fix | Delete
if ( 'Product' === $review['schema'] ) {
[2242] Fix | Delete
// Product type recommends both review and aggregateRating.
[2243] Fix | Delete
if ( empty( $args['review'] ) ) {
[2244] Fix | Delete
$review_rating = wp_review_get_schema_nested_review_args( $review );
[2245] Fix | Delete
if ( ! empty( $review_rating ) ) {
[2246] Fix | Delete
$args['review'] = $review_rating;
[2247] Fix | Delete
}
[2248] Fix | Delete
}
[2249] Fix | Delete
if ( empty( $args['aggregateRating'] ) ) {
[2250] Fix | Delete
$aggregate_rating = wp_review_get_schema_nested_user_rating_args( $review );
[2251] Fix | Delete
if ( ! empty( $aggregate_rating ) ) {
[2252] Fix | Delete
$args['aggregateRating'] = $aggregate_rating;
[2253] Fix | Delete
}
[2254] Fix | Delete
}
[2255] Fix | Delete
}
[2256] Fix | Delete
[2257] Fix | Delete
if ( 'Recipe' === $review['schema'] ) {
[2258] Fix | Delete
if ( isset( $args['video'] ) && ( empty( $args['video']['name'] ) || empty( $args['video']['description'] ) || empty( $args['video']['thumbnailUrl'] ) || empty( $args['video']['uploadDate'] ) ) ) {
[2259] Fix | Delete
unset( $args['video'] );
[2260] Fix | Delete
}
[2261] Fix | Delete
}
[2262] Fix | Delete
[2263] Fix | Delete
$args = apply_filters( 'wp_review_get_schema_type_args', $args, $review, $nested_rating );
[2264] Fix | Delete
[2265] Fix | Delete
$output = '<script type="application/ld+json">' . PHP_EOL;
[2266] Fix | Delete
$output .= wp_json_encode( $args, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ) . PHP_EOL;
[2267] Fix | Delete
$output .= '</script>' . PHP_EOL;
[2268] Fix | Delete
[2269] Fix | Delete
return apply_filters( 'wp_review_get_schema_type', $output, $args, $review, $nested_rating );
[2270] Fix | Delete
}
[2271] Fix | Delete
[2272] Fix | Delete
/**
[2273] Fix | Delete
* Gets schema for review rating.
[2274] Fix | Delete
*
[2275] Fix | Delete
* @param array $review Review data.
[2276] Fix | Delete
* @param bool $nested_item Is nested item or not.
[2277] Fix | Delete
* @return string
[2278] Fix | Delete
*/
[2279] Fix | Delete
function wp_review_get_schema_review_rating( $review, $nested_item = false ) {
[2280] Fix | Delete
[2281] Fix | Delete
if ( ! $nested_item && in_array( $review['schema'], apply_filters( 'wp_review_schema_force_nested_user_rating_types', array( 'SoftwareApplication', 'Recipe' ) ) ) ) {
[2282] Fix | Delete
return; // Requires nested aggregateRating.
[2283] Fix | Delete
}
[2284] Fix | Delete
[2285] Fix | Delete
$rating_types = wp_review_get_rating_types();
[2286] Fix | Delete
[2287] Fix | Delete
if ( $nested_item ) {
[2288] Fix | Delete
$item_reviewed = wp_review_get_schema_nested_item_args( $review );
[2289] Fix | Delete
} else {
[2290] Fix | Delete
$item_reviewed = array(
[2291] Fix | Delete
'@type' => 'Thing',
[2292] Fix | Delete
'name' => esc_html( wp_review_get_reviewed_item_name( $review ) ),
[2293] Fix | Delete
);
[2294] Fix | Delete
}
[2295] Fix | Delete
[2296] Fix | Delete
$args = array(
[2297] Fix | Delete
'@context' => 'http://schema.org',
[2298] Fix | Delete
'@type' => 'Review',
[2299] Fix | Delete
'itemReviewed' => $item_reviewed,
[2300] Fix | Delete
'reviewRating' => array(
[2301] Fix | Delete
'@type' => 'Rating',
[2302] Fix | Delete
'ratingValue' => $review['total'],
[2303] Fix | Delete
'bestRating' => $rating_types[ $review['type'] ]['max'],
[2304] Fix | Delete
'worstRating' => 0,
[2305] Fix | Delete
),
[2306] Fix | Delete
'author' => array(
[2307] Fix | Delete
'@type' => 'Person',
[2308] Fix | Delete
'name' => esc_html( $review['author'] ),
[2309] Fix | Delete
),
[2310] Fix | Delete
'reviewBody' => esc_html( $review['desc'] ),
[2311] Fix | Delete
);
[2312] Fix | Delete
[2313] Fix | Delete
$args = apply_filters( 'wp_review_get_schema_review_rating_args', $args, $review );
[2314] Fix | Delete
[2315] Fix | Delete
$output = '<script type="application/ld+json">' . PHP_EOL;
[2316] Fix | Delete
$output .= wp_json_encode( $args, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ) . PHP_EOL;
[2317] Fix | Delete
$output .= '</script>' . PHP_EOL;
[2318] Fix | Delete
[2319] Fix | Delete
return apply_filters( 'wp_review_get_schema_review_rating', $output, $args, $review );
[2320] Fix | Delete
}
[2321] Fix | Delete
[2322] Fix | Delete
/**
[2323] Fix | Delete
* Gets schema for user rating.
[2324] Fix | Delete
*
[2325] Fix | Delete
* @param array $review Review data.
[2326] Fix | Delete
* @param bool $nested_item Is nested item or not.
[2327] Fix | Delete
* @return string
[2328] Fix | Delete
*/
[2329] Fix | Delete
function wp_review_get_schema_user_rating( $review, $nested_item = false ) {
[2330] Fix | Delete
[2331] Fix | Delete
if ( ! $nested_item && in_array( $review['schema'], apply_filters( 'wp_review_schema_force_nested_user_rating_types', array( 'SoftwareApplication', 'Recipe' ) ) ) ) {
[2332] Fix | Delete
return; // Requires nested aggregateRating.
[2333] Fix | Delete
}
[2334] Fix | Delete
[2335] Fix | Delete
$rating_types = wp_review_get_rating_types();
[2336] Fix | Delete
[2337] Fix | Delete
if ( $nested_item ) {
[2338] Fix | Delete
$item_reviewed = wp_review_get_schema_nested_item_args( $review );
[2339] Fix | Delete
} else {
[2340] Fix | Delete
$item_reviewed = array(
[2341] Fix | Delete
'@type' => 'Thing',
[2342] Fix | Delete
'name' => esc_html( wp_review_get_reviewed_item_name( $review ) ),
[2343] Fix | Delete
);
[2344] Fix | Delete
}
[2345] Fix | Delete
[2346] Fix | Delete
if ( 'comments' === $review['rating_schema'] ) {
[2347] Fix | Delete
$comment_reviews = mts_get_post_comments_reviews( $review['post_id'] );
[2348] Fix | Delete
$total = $comment_reviews['rating'];
[2349] Fix | Delete
$count = $comment_reviews['count'];
[2350] Fix | Delete
} else {
[2351] Fix | Delete
$total = $review['user_review_total'];
[2352] Fix | Delete
$count = $review['user_review_count'];
[2353] Fix | Delete
}
[2354] Fix | Delete
[2355] Fix | Delete
$args = array();
[2356] Fix | Delete
if ( 0 < (int) $count ) {
[2357] Fix | Delete
$args = array(
[2358] Fix | Delete
'@context' => 'http://schema.org',
[2359] Fix | Delete
'@type' => 'aggregateRating',
[2360] Fix | Delete
'itemReviewed' => $item_reviewed,
[2361] Fix | Delete
'ratingValue' => $total,
[2362] Fix | Delete
'bestRating' => $rating_types[ $review['user_review_type'] ]['max'],
[2363] Fix | Delete
'ratingCount' => $count,
[2364] Fix | Delete
'worstRating' => 0,
[2365] Fix | Delete
);
[2366] Fix | Delete
}
[2367] Fix | Delete
[2368] Fix | Delete
$args = apply_filters( 'wp_review_get_schema_user_rating_args', $args, $review );
[2369] Fix | Delete
[2370] Fix | Delete
$output = '';
[2371] Fix | Delete
if ( ! empty( $args ) ) {
[2372] Fix | Delete
$output .= '<script type="application/ld+json">' . PHP_EOL;
[2373] Fix | Delete
$output .= wp_json_encode( $args, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT ) . PHP_EOL;
[2374] Fix | Delete
$output .= '</script>' . PHP_EOL;
[2375] Fix | Delete
}
[2376] Fix | Delete
[2377] Fix | Delete
return apply_filters( 'wp_review_get_schema_user_rating', $output, $args, $review );
[2378] Fix | Delete
}
[2379] Fix | Delete
[2380] Fix | Delete
/**
[2381] Fix | Delete
* Gets reviewed item name.
[2382] Fix | Delete
*
[2383] Fix | Delete
* @param array $review Review data.
[2384] Fix | Delete
* @return string
[2385] Fix | Delete
*/
[2386] Fix | Delete
function wp_review_get_reviewed_item_name( $review ) {
[2387] Fix | Delete
[2388] Fix | Delete
$item_reviewed = empty( $review['heading'] ) ? get_the_title( $review['post_id'] ) : esc_html( $review['heading'] );
[2389] Fix | Delete
[2390] Fix | Delete
if ( ! empty( $review['schema'] ) && 'Thing' !== $review['schema'] ) {
[2391] Fix | Delete
[2392] Fix | Delete
if ( isset( $review['schema_data'][ $review['schema'] ]['name'] ) && ! empty( $review['schema_data'][ $review['schema'] ]['name'] ) ) {
[2393] Fix | Delete
$item_reviewed = $review['schema_data'][ $review['schema'] ]['name'];
[2394] Fix | Delete
}
[2395] Fix | Delete
}
[2396] Fix | Delete
[2397] Fix | Delete
return apply_filters( 'wp_review_get_reviewed_item_name', $item_reviewed, $review );
[2398] Fix | Delete
}
[2399] Fix | Delete
[2400] Fix | Delete
/**
[2401] Fix | Delete
* Gets schema nested user rating args.
[2402] Fix | Delete
*
[2403] Fix | Delete
* @param array $review Review data.
[2404] Fix | Delete
* @return array
[2405] Fix | Delete
*/
[2406] Fix | Delete
function wp_review_get_schema_nested_user_rating_args( $review ) {
[2407] Fix | Delete
$rating_types = wp_review_get_rating_types();
[2408] Fix | Delete
[2409] Fix | Delete
$args = array();
[2410] Fix | Delete
if ( 'comments' === $review['rating_schema'] ) {
[2411] Fix | Delete
$comment_reviews = mts_get_post_comments_reviews( $review['post_id'] );
[2412] Fix | Delete
$comments_review_total = $comment_reviews['rating'];
[2413] Fix | Delete
$comments_review_count = $comment_reviews['count'];
[2414] Fix | Delete
if ( 0 < (int) $comments_review_count ) {
[2415] Fix | Delete
$args = array(
[2416] Fix | Delete
'@type' => 'aggregateRating',
[2417] Fix | Delete
'ratingValue' => wp_review_normalize_rating_value( $comments_review_total ),
[2418] Fix | Delete
'bestRating' => $rating_types[ $review['user_review_type'] ]['max'],
[2419] Fix | Delete
'ratingCount' => $comments_review_count,
[2420] Fix | Delete
'worstRating' => 0,
[2421] Fix | Delete
);
[2422] Fix | Delete
}
[2423] Fix | Delete
} else {
[2424] Fix | Delete
if ( 0 < (int) $review['user_review_count'] ) {
[2425] Fix | Delete
$args = array(
[2426] Fix | Delete
'@type' => 'aggregateRating',
[2427] Fix | Delete
'ratingValue' => wp_review_normalize_rating_value( $review['user_review_total'] ),
[2428] Fix | Delete
'bestRating' => $rating_types[ $review['user_review_type'] ]['max'],
[2429] Fix | Delete
'ratingCount' => $review['user_review_count'],
[2430] Fix | Delete
'worstRating' => 0,
[2431] Fix | Delete
);
[2432] Fix | Delete
}
[2433] Fix | Delete
}
[2434] Fix | Delete
[2435] Fix | Delete
return apply_filters( 'wp_review_get_schema_nested_user_rating_args', $args, $review );
[2436] Fix | Delete
}
[2437] Fix | Delete
[2438] Fix | Delete
/**
[2439] Fix | Delete
* Gets schema nested review args.
[2440] Fix | Delete
*
[2441] Fix | Delete
* @param array $review Review data.
[2442] Fix | Delete
* @return array
[2443] Fix | Delete
*/
[2444] Fix | Delete
function wp_review_get_schema_nested_review_args( $review ) {
[2445] Fix | Delete
[2446] Fix | Delete
if ( ! boolval( $review['total'] ) ) {
[2447] Fix | Delete
return apply_filters( 'wp_review_get_schema_nested_review_args', array(), $review );
[2448] Fix | Delete
}
[2449] Fix | Delete
[2450] Fix | Delete
$rating_types = wp_review_get_rating_types();
[2451] Fix | Delete
[2452] Fix | Delete
$args = array(
[2453] Fix | Delete
'@type' => 'Review',
[2454] Fix | Delete
'reviewRating' => array(
[2455] Fix | Delete
'@type' => 'Rating',
[2456] Fix | Delete
'ratingValue' => wp_review_normalize_rating_value( $review['total'] ),
[2457] Fix | Delete
'bestRating' => $rating_types[ $review['type'] ]['max'],
[2458] Fix | Delete
'worstRating' => 0,
[2459] Fix | Delete
),
[2460] Fix | Delete
'author' => array(
[2461] Fix | Delete
'@type' => 'Person',
[2462] Fix | Delete
'name' => esc_html( $review['author'] ),
[2463] Fix | Delete
),
[2464] Fix | Delete
'reviewBody' => esc_html( $review['desc'] ),
[2465] Fix | Delete
);
[2466] Fix | Delete
[2467] Fix | Delete
return apply_filters( 'wp_review_get_schema_nested_review_args', $args, $review );
[2468] Fix | Delete
}
[2469] Fix | Delete
[2470] Fix | Delete
/**
[2471] Fix | Delete
* Gets schema nested item args.
[2472] Fix | Delete
*
[2473] Fix | Delete
* @param array $review Review data.
[2474] Fix | Delete
* @return array
[2475] Fix | Delete
*/
[2476] Fix | Delete
function wp_review_get_schema_nested_item_args( $review ) {
[2477] Fix | Delete
[2478] Fix | Delete
$args = array(
[2479] Fix | Delete
'@type' => $review['schema'],
[2480] Fix | Delete
);
[2481] Fix | Delete
[2482] Fix | Delete
$schema_data = ! empty( $review['schema_data'][ $review['schema'] ] ) ? $review['schema_data'][ $review['schema'] ] : array();
[2483] Fix | Delete
$ldjson_data = wp_review_get_ldjson_data( $review['schema'], $schema_data, $review );
[2484] Fix | Delete
if ( $ldjson_data ) {
[2485] Fix | Delete
$args += $ldjson_data;
[2486] Fix | Delete
} else {
[2487] Fix | Delete
$schemas = wp_review_schema_types();
[2488] Fix | Delete
$fields = isset( $schemas[ $review['schema'] ] ) && isset( $schemas[ $review['schema'] ]['fields'] ) ? $schemas[ $review['schema'] ]['fields'] : array();
[2489] Fix | Delete
if ( is_array( $fields ) && ! empty( $fields ) ) {
[2490] Fix | Delete
foreach ( $fields as $key => $data ) {
[2491] Fix | Delete
if ( ! empty( $data['omit'] ) ) {
[2492] Fix | Delete
continue;
[2493] Fix | Delete
}
[2494] Fix | Delete
[2495] Fix | Delete
if ( isset( $schema_data[ $data['name'] ] ) && ! empty( $schema_data[ $data['name'] ] ) ) {
[2496] Fix | Delete
$value = $schema_data[ $data['name'] ];
[2497] Fix | Delete
$name = ! empty( $data['custom_name'] ) ? strip_tags( $data['custom_name'] ) : $data['name'];
[2498] Fix | Delete
[2499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function