feat(import): store primary destination; crawl configured cities
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -156,10 +156,14 @@ class VC_Cron {
|
||||
|
||||
$map = get_transient( 'vc_destination_map' );
|
||||
|
||||
// A destination allowlist (comma-separated IDs) narrows the crawl to a
|
||||
// focused set; empty means the whole catalogue.
|
||||
// Cities configured on the Viator Structure screen define the crawl.
|
||||
// Without any, a destination allowlist (comma-separated IDs) narrows
|
||||
// the crawl to a focused set; empty means the whole catalogue.
|
||||
$cities = array_map( 'strval', array_keys( VC_Structure::cities( VC_Structure::get() ) ) );
|
||||
$allow = array_filter( array_map( 'trim', explode( ',', (string) vc_get_option( 'crawl_destinations', '' ) ) ) );
|
||||
if ( ! empty( $allow ) ) {
|
||||
if ( ! empty( $cities ) ) {
|
||||
$queue = $cities;
|
||||
} elseif ( ! empty( $allow ) ) {
|
||||
$queue = array_values( array_unique( $allow ) );
|
||||
} else {
|
||||
$queue = is_array( $map ) ? array_keys( $map ) : array();
|
||||
@@ -191,7 +195,11 @@ class VC_Cron {
|
||||
);
|
||||
update_option( 'vc_ingest_in_progress', 1, false );
|
||||
update_option( 'vc_last_sync_started_at', current_time( 'mysql' ), false );
|
||||
if ( ! empty( $cities ) ) {
|
||||
VC_Logger::info( sprintf( 'Sync run started from structure — %d cities queued.', count( $queue ) ) );
|
||||
} else {
|
||||
VC_Logger::info( sprintf( 'Sync run started — %d destinations queued.', count( $queue ) ) );
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -368,6 +368,7 @@ class VC_Importer {
|
||||
'_vc_cancellation_policy' => wp_json_encode( vc_first_non_empty( array( vc_array_get( $product, 'cancellationPolicy' ), vc_array_get( $product, 'cancellation' ) ), array() ) ),
|
||||
'_vc_supplier' => sanitize_text_field( $supplier ),
|
||||
'_vc_destinations' => wp_json_encode( vc_array_get( $product, 'destinations', array() ) ),
|
||||
'_vc_primary_destination' => VC_Structure::primary_destination_id( (array) vc_array_get( $product, 'destinations', array() ) ),
|
||||
'_vc_tags' => wp_json_encode( vc_array_get( $product, 'tags', array() ) ),
|
||||
'_vc_rating' => sanitize_text_field( (string) $rating ),
|
||||
'_vc_review_count' => absint( $review_count ),
|
||||
|
||||
@@ -30,6 +30,7 @@ final class VC_Plugin {
|
||||
'includes/class-vc-logger.php',
|
||||
'includes/class-vc-cpt.php',
|
||||
'includes/class-vc-taxonomies.php',
|
||||
'includes/class-vc-structure.php',
|
||||
'includes/class-vc-api.php',
|
||||
'includes/class-vc-importer.php',
|
||||
'includes/class-vc-cron.php',
|
||||
|
||||
@@ -345,7 +345,7 @@ class VC_Settings {
|
||||
<th scope="row"><label for="vc_crawl_destinations"><?php echo esc_html__( 'Destination filter', 'viator-collector' ); ?></label></th>
|
||||
<td>
|
||||
<input id="vc_crawl_destinations" type="text" class="large-text" name="vc_settings[crawl_destinations]" value="<?php echo esc_attr( $options['crawl_destinations'] ); ?>" placeholder="<?php echo esc_attr__( 'e.g. 664, 662, 761', 'viator-collector' ); ?>">
|
||||
<p class="description"><?php echo esc_html__( 'Comma-separated Viator destination IDs to crawl. Leave empty to crawl the whole catalogue. Use the search below to find IDs.', 'viator-collector' ); ?></p>
|
||||
<p class="description"><?php echo esc_html__( 'Comma-separated Viator destination IDs to crawl. Leave empty to crawl the whole catalogue. Use the search below to find IDs. Used only when no cities are set on the Viator Structure screen.', 'viator-collector' ); ?></p>
|
||||
<div class="vc-dest-finder" style="margin-top:8px;max-width:640px;">
|
||||
<input type="search" id="vc-dest-search" class="regular-text" placeholder="<?php echo esc_attr__( 'Search destinations, e.g. Orlando', 'viator-collector' ); ?>">
|
||||
<button type="button" class="button" id="vc-dest-search-btn"><?php echo esc_html__( 'Search', 'viator-collector' ); ?></button>
|
||||
|
||||
Reference in New Issue
Block a user