<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
/**
* Jetpack CRM
* https://jetpackcrm.com
*
* WooSync: Admin: Connections page AJAX
*/
// block direct access
defined( 'ZEROBSCRM_PATH' ) || exit( 0 );
/**
* Language labels for JS
*
* @param array $language_array Array of language labels.
*/
function jpcrm_woosync_connections_js_language_labels( $language_array = array() ) {
// add our labels
// connections page
$language_array['connect-woo'] = __( 'Connect WooCommerce Store', 'zero-bs-crm' );
$language_array['connect-woo-site-url'] = __( 'Enter your Store URL:', 'zero-bs-crm' );
$language_array['connect-woo-site-placeholder'] = __( 'e.g. https://examplestore.com', 'zero-bs-crm' );
$language_array['connect-woo-go'] = __( 'Connect Store', 'zero-bs-crm' );
$language_array['connect-woo-invalid-url'] = __( 'Invalid URL', 'zero-bs-crm' );
$language_array['connect-woo-invalid-url-empty'] = __( 'Please enter your store URL!', 'zero-bs-crm' );
$language_array['connect-woo-invalid-url-detail'] = __( 'This doesn\'t look like a valid URL. If this is not correct, please contact support.', 'zero-bs-crm' );
$language_array['connect-woo-invalid-url-http'] = __( 'Invalid URL - Store URL must use HTTPS', 'zero-bs-crm' );
$language_array['connect-woo-invalid-url-duplicate'] = __( 'This Store URL already exists!', 'zero-bs-crm' );
$language_array['connect-woo-ajax-error'] = __( 'AJAX Error', 'zero-bs-crm' );
return $language_array;
}
add_filter( 'zbs_globaljs_lang', 'jpcrm_woosync_connections_js_language_labels' );
/**
* JS Vars (get added to jpcrm_root var stack)
*
* @param array $var_array Array of JS variables.
*/
function jpcrm_woosync_connections_js_vars( $var_array = array() ) {
global $zbs;
// add our vars
// now retrieved via AJAX - $var_array['connect_woo_querystring'] = $this->get_external_woo_url_for_oauth_query_string();
$var_array['woosync_token'] = wp_create_nonce( 'jpcrm-woosync-ajax-nonce' );
// add array of sync sites
$sync_sites = $zbs->modules->woosync->settings->get( 'sync_sites' );
$woosync_connections = array();
foreach ( $sync_sites as $site ) {
$woosync_connections[] = rtrim( $site['domain'], '/' );
}
$var_array['woosync_connections'] = $woosync_connections;
return $var_array;
}
add_filter( 'zbs_globaljs_vars', 'jpcrm_woosync_connections_js_vars' );
/**
* Send a quote via email
*/
function jpcrm_woosync_ajax_get_auth_url() {
// Check nonce
check_ajax_referer( 'jpcrm-woosync-ajax-nonce', 'sec' );
// Check perms
if ( ! zeroBSCRM_isZBSAdminOrAdmin() ) {
wp_send_json_error( array(), 500 );
}
// retrieve params
if ( isset( $_POST['site_url'] ) ) {
$site_url = sanitize_text_field( $_POST['site_url'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash
if ( ! empty( $site_url ) ) {
global $zbs;
wp_send_json(
array(
'target_url' => $zbs->modules->woosync->get_external_woo_url_for_oauth( $site_url ),
)
);
}
}
wp_send_json_error( array(), 500 );
}
add_action( 'wp_ajax_jpcrm_woosync_get_auth_url', 'jpcrm_woosync_ajax_get_auth_url' );