numeric( $v ) ) { return false; } } $value = array_map( 'intval', $value ); return $value[0] . ' AND ' . $value[1]; default: if ( ! is_numeric( $value ) ) { return false; } return (int) $value; } } /** * Builds a MySQL format date/time based on some query parameters. * * You can pass an array of values (year, month, etc.) with missing parameter values being defaulted to * either the maximum or minimum values (controlled by the $default_to parameter). Alternatively you can * pass a string that will be passed to date_create(). * * @since 3.7.0 * * @param string|array $datetime An array of parameters or a strotime() string. * @param bool $default_to_max Whether to round up incomplete dates. Supported by values * of $datetime that are arrays, or string values that are a * subset of MySQL date format ('Y', 'Y-m', 'Y-m-d', 'Y-m-d H:i'). * Default: false. * @return string|false A MySQL format date/time or false on failure. */ public function build_mysql_datetime( $datetime, $default_to_max = false ) { if ( ! is_array( $datetime ) ) { /* * Try to parse some common date formats, so we can detect * the level of precision and support the 'inclusive' parameter. */ if ( preg_match( '/^(\d{4})$/', $datetime, $matches ) ) { // Y $datetime = array( 'year' => (int) $matches[1], ); } elseif ( preg_match( '/^(\d{4})\-(\d{2})$/', $datetime, $matches ) ) { // Y-m $datetime = array( 'year' => (int) $matches[1], 'month' => (int) $matches[2], ); } elseif ( preg_match( '/^(\d{4})\-(\d{2})\-(\d{2})$/', $datetime, $matches ) ) { // Y-m-d $datetime = array( 'year' => (int) $matches[1], 'month' => (int) $matches[2], 'day' => (int) $matches[3], ); } elseif ( preg_match( '/^(\d{4})\-(\d{2})\-(\d{2}) (\d{2}):(\d{2})$/', $datetime, $matches ) ) { // Y-m-d H:i $datetime = array( 'year' => (int) $matches[1], 'month' => (int) $matches[2], 'day' => (int) $matches[3], 'hour' => (int) $matches[4], 'minute' => (int) $matches[5], ); } // If no match is found, we don't support default_to_max. if ( ! is_array( $datetime ) ) { $wp_timezone = wp_timezone(); // Assume local timezone if not provided. $dt = date_create( $datetime, $wp_timezone ); if ( false === $dt ) { return gmdate( 'Y-m-d H:i:s', false ); } return $dt->setTimezone( $wp_timezone )->format( 'Y-m-d H:i:s' ); } } $datetime = array_map( 'absint', $datetime ); if ( ! isset( $datetime['year'] ) ) { $datetime['year'] = current_time( 'Y' ); } if ( ! isset( $datetime['month'] ) ) { $datetime['month'] = ( $default_to_max ) ? 12 : 1; } if ( ! isset( $datetime['day'] ) ) { $datetime['day'] = ( $default_to_max ) ? (int) gmdate( 't', mktime( 0, 0, 0, $datetime['month'], 1, $datetime['year'] ) ) : 1; } if ( ! isset( $datetime['hour'] ) ) { $datetime['hour'] = ( $default_to_max ) ? 23 : 0; } if ( ! isset( $datetime['minute'] ) ) { $datetime['minute'] = ( $default_to_max ) ? 59 : 0; } if ( ! isset( $datetime['second'] ) ) { $datetime['second'] = ( $default_to_max ) ? 59 : 0; } return sprintf( '%04d-%02d-%02d %02d:%02d:%02d', $datetime['year'], $datetime['month'], $datetime['day'], $datetime['hour'], $datetime['minute'], $datetime['second'] ); } /** * Builds a query string for comparing time values (hour, minute, second). * * If just hour, minute, or second is set than a normal comparison will be done. * However if multiple values are passed, a pseudo-decimal time will be created * in order to be able to accurately compare against. * * @since 3.7.0 * * @param string $column The column to query against. Needs to be pre-validated! * @param string $compare The comparison operator. Needs to be pre-validated! * @param int|null $hour Optional. An hour value (0-23). * @param int|null $minute Optional. A minute value (0-59). * @param int|null $second Optional. A second value (0-59). * @return string|false A query part or false on failure. */ public function build_time_query( $column, $compare, $hour = null, $minute = null, $second = null ) { global $wpdb; // Have to have at least one. if ( ! isset( $hour ) && ! isset( $minute ) && ! isset( $second ) ) { return false; } // Complex combined queries aren't supported for multi-value queries. if ( in_array( $compare, array( 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ), true ) ) { $return = array(); $value = $this->build_value( $compare, $hour ); if ( false !== $value ) { $return[] = "HOUR( $column ) $compare $value"; } $value = $this->build_value( $compare, $minute ); if ( false !== $value ) { $return[] = "MINUTE( $column ) $compare $value"; } $value = $this->build_value( $compare, $second ); if ( false !== $value ) { $return[] = "SECOND( $column ) $compare $value"; } return implode( ' AND ', $return ); } // Cases where just one unit is set. if ( isset( $hour ) && ! isset( $minute ) && ! isset( $second ) ) { $value = $this->build_value( $compare, $hour ); if ( false !== $value ) { return "HOUR( $column ) $compare $value"; } } elseif ( ! isset( $hour ) && isset( $minute ) && ! isset( $second ) ) { $value = $this->build_value( $compare, $minute ); if ( false !== $value ) { return "MINUTE( $column ) $compare $value"; } } elseif ( ! isset( $hour ) && ! isset( $minute ) && isset( $second ) ) { $value = $this->build_value( $compare, $second ); if ( false !== $value ) { return "SECOND( $column ) $compare $value"; } } // Single units were already handled. Since hour & second isn't allowed, minute must to be set. if ( ! isset( $minute ) ) { return false; } $format = ''; $time = ''; // Hour. if ( null !== $hour ) { $format .= '%H.'; $time .= sprintf( '%02d', $hour ) . '.'; } else { $format .= '0.'; $time .= '0.'; } // Minute. $format .= '%i'; $time .= sprintf( '%02d', $minute ); if ( isset( $second ) ) { $format .= '%s'; $time .= sprintf( '%02d', $second ); } return $wpdb->prepare( "DATE_FORMAT( $column, %s ) $compare %f", $format, $time ); } /** * Sanitizes a 'relation' operator. * * @since 6.0.3 * * @param string $relation Raw relation key from the query argument. * @return string Sanitized relation ('AND' or 'OR'). */ public function sanitize_relation( $relation ) { if ( 'OR' === strtoupper( $relation ) ) { return 'OR'; } else { return 'AND'; } } } {"id":6702,"date":"2021-09-03T23:15:51","date_gmt":"2021-09-03T18:45:51","guid":{"rendered":"https:\/\/electroaren.ir\/?post_type=product&p=6702"},"modified":"2025-01-15T18:42:23","modified_gmt":"2025-01-15T15:12:23","slug":"%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87","status":"publish","type":"product","link":"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/","title":{"rendered":"\u0645\u0648\u0644\u062a\u06cc \u062a\u0631\u0646 200 \u06a9\u06cc\u0644\u0648 \u0627\u0647\u0645 – \u0627\u06cc\u0633\u062a\u0627\u062f\u0647"},"content":{"rendered":"","protected":false},"excerpt":{"rendered":"","protected":false},"featured_media":6694,"comment_status":"open","ping_status":"closed","template":"","meta":[],"product_cat":[872,879,930],"product_tag":[],"yoast_head":"\n\u0645\u0648\u0644\u062a\u06cc \u062a\u0631\u0646 200 \u06a9\u06cc\u0644\u0648 \u0627\u0647\u0645 - \u0627\u06cc\u0633\u062a\u0627\u062f\u0647 - \u0627\u0644\u06a9\u062a\u0631\u0648\u0622\u0631\u0646<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/electroaren.ir\/product\/\u0645\u0648\u0644\u062a\u06cc-\u062a\u0631\u0646-200-\u06a9\u06cc\u0644\u0648-\u0627\u0647\u0645-\u0627\u06cc\u0633\u062a\u0627\u062f\u0647\/\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0645\u0648\u0644\u062a\u06cc \u062a\u0631\u0646 200 \u06a9\u06cc\u0644\u0648 \u0627\u0647\u0645 - \u0627\u06cc\u0633\u062a\u0627\u062f\u0647 - \u0627\u0644\u06a9\u062a\u0631\u0648\u0622\u0631\u0646\" \/>\n<meta property=\"og:url\" content=\"https:\/\/electroaren.ir\/product\/\u0645\u0648\u0644\u062a\u06cc-\u062a\u0631\u0646-200-\u06a9\u06cc\u0644\u0648-\u0627\u0647\u0645-\u0627\u06cc\u0633\u062a\u0627\u062f\u0647\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0627\u0644\u06a9\u062a\u0631\u0648\u0622\u0631\u0646\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-15T15:12:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/electroaren.ir\/wp-content\/uploads\/2021\/09\/multi_turn.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/electroaren.ir\/#website\",\"url\":\"https:\/\/electroaren.ir\/\",\"name\":\"\\u0627\\u0644\\u06a9\\u062a\\u0631\\u0648\\u0622\\u0631\\u0646\",\"description\":\"\\u0645\\u0639\\u062a\\u0628\\u0631\\u062a\\u0631\\u06cc\\u0646 \\u0641\\u0631\\u0648\\u0634\\u06af\\u0627\\u0647 \\u0644\\u0648\\u0627\\u0632\\u0645 \\u0648 \\u0642\\u0637\\u0639\\u0627\\u062a \\u0627\\u0644\\u06a9\\u062a\\u0631\\u0648\\u0646\\u06cc\\u06a9\\u06cc\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/electroaren.ir\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/#primaryimage\",\"inLanguage\":\"fa-IR\",\"url\":\"https:\/\/electroaren.ir\/wp-content\/uploads\/2021\/09\/multi_turn.jpg\",\"contentUrl\":\"https:\/\/electroaren.ir\/wp-content\/uploads\/2021\/09\/multi_turn.jpg\",\"width\":350,\"height\":350},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/#webpage\",\"url\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/\",\"name\":\"\\u0645\\u0648\\u0644\\u062a\\u06cc \\u062a\\u0631\\u0646 200 \\u06a9\\u06cc\\u0644\\u0648 \\u0627\\u0647\\u0645 - \\u0627\\u06cc\\u0633\\u062a\\u0627\\u062f\\u0647 - \\u0627\\u0644\\u06a9\\u062a\\u0631\\u0648\\u0622\\u0631\\u0646\",\"isPartOf\":{\"@id\":\"https:\/\/electroaren.ir\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/#primaryimage\"},\"datePublished\":\"2021-09-03T18:45:51+00:00\",\"dateModified\":\"2025-01-15T15:12:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/electroaren.ir\/product\/%d9%85%d9%88%d9%84%d8%aa%db%8c-%d8%aa%d8%b1%d9%86-200-%da%a9%db%8c%d9%84%d9%88-%d8%a7%d9%87%d9%85-%d8%a7%db%8c%d8%b3%d8%aa%d8%a7%d8%af%d9%87\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\\u062e\\u0627\\u0646\\u0647\",\"item\":\"https:\/\/electroaren.ir\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\\u0622\\u0631\\u0634\\u06cc\\u0648 \\u0645\\u062d\\u0635\\u0648\\u0644\\u0627\\u062a\",\"item\":\"https:\/\/electroaren.ir\/shop\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"\\u0645\\u0648\\u0644\\u062a\\u06cc \\u062a\\u0631\\u0646 200 \\u06a9\\u06cc\\u0644\\u0648 \\u0627\\u0647\\u0645 – \\u0627\\u06cc\\u0633\\u062a\\u0627\\u062f\\u0647\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/product\/6702"}],"collection":[{"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/comments?post=6702"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/media\/6694"}],"wp:attachment":[{"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/media?parent=6702"}],"wp:term":[{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/product_cat?post=6702"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/electroaren.ir\/wp-json\/wp\/v2\/product_tag?post=6702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}