elements = get_option( 'woocommerce_awooc_select_item' ); add_action( 'wp_ajax_nopriv_awooc_ajax_product_form', array( $this, 'ajax_scripts_callback' ) ); add_action( 'wp_ajax_awooc_ajax_product_form', array( $this, 'ajax_scripts_callback' ) ); } /** * Возвратна функция дл загрузки данных во всплывающем окне */ public function ajax_scripts_callback() { if ( ! wp_verify_nonce( $_POST['nonce'], 'awooc-nonce' ) ) { wp_die( 'Упс... Данные отправлены с неизвестного адреса' ); } $product = wc_get_product( esc_attr( $_POST['id'] ) ); $data = array( 'elements' => 'full', 'title' => $this->product_title( $product ), 'image' => $this->product_image( $product ), 'link' => esc_url( get_permalink( $this->product_id( $product ) ) ), 'sku' => $this->product_sku( $product ), 'attr' => $this->product_attr( $product ), 'price' => $this->product_price( $product ), 'pricenumber' => $product->get_price(), 'qty' => '
', 'form' => $this->select_form(), ); // проверяем на включенный режим, если включен режим любой кроме шатного, то удаляем количество if ( 'dont_show_add_to_card' === get_option( 'woocommerce_awooc_mode_catalog' ) || 'in_stock_add_to_card' === get_option( 'woocommerce_awooc_mode_catalog' ) ) { unset( $data['qty'] ); } if ( empty( $this->elements ) || ! isset( $this->elements ) ) { $data['elements'] = 'empty'; } wp_send_json( $data ); wp_die(); } /** * Output form in a popup window * * @since 1.8.1 * @return bool|string */ public function select_form() { $select_form = get_option( 'woocommerce_awooc_select_form' ); if ( ! $select_form ) { return false; } return do_shortcode( '[contact-form-7 id="' . esc_attr( $select_form ) . '"]' ); } /** * Получение заголовка товара * * @param $product * * @since 1.8.0 * * @return bool|string */ public function product_title( $product ) { if ( ! in_array( 'title', $this->elements, true ) ) { return false; } return $product->get_title( $this->product_id( $product ) ); } /** * Вспомогательная функция для проверки типа товара * * @since 1.8.0 * * @param $product * * @return mixed */ public function product_id( $product ) { if ( 'simple' === $product->get_type() ) { $product_id = $product->get_id(); } else { $product_id = $product->get_parent_id(); } return $product_id; } /** * Получаем изображение товара * * @since 1.8.0 * * @param $product * * @return bool|mixed|string */ public function product_image( $product ) { if ( ! in_array( 'image', $this->elements, true ) ) { return false; } $image = ''; $post_thumbnail_id = get_post_thumbnail_id( $product->get_id() ); if ( ! $post_thumbnail_id ) { $post_thumbnail_id = get_post_thumbnail_id( $product->get_parent_id() ); } $full_size_image = wp_get_attachment_image_src( $post_thumbnail_id, apply_filters( 'awooc_thumbnail_name', 'shop_single' ) ); if ( $full_size_image ) { $image = apply_filters(// WPCS: XSS ok. 'awooc_popup_image_html', sprintf( '