HEX
Server: Apache
System: Linux webd006.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: zwafgyp (177615)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/zwafgyp/lacalita/wp-content/plugins/rey-core/inc/modules/request-quote/compat-wpforms.php
<?php
namespace ReyCore\Modules\RequestQuote;

if (!defined('ABSPATH')) exit; // Exit if accessed directly

class CompatWpforms {

	public $wpform;

	public function __construct()
	{

		if( ! function_exists('wpforms') ){
			return;
		}

		if( ! Base::instance()->is_enabled() ) {
			return;
		}

		if( get_theme_mod('request_quote__form_type', 'cf7') !== 'wpforms' ){
			return;
		}

		if( ! ($this->wpform = get_theme_mod('request_quote__wpforms', '')) ){
			return;
		}

		add_filter('reycore/woocommerce/request_quote/output', [$this, 'request_quote_output'], 10, 2);
		add_action('wpforms_email_body', [$this, 'add_custom_content'], 10);

	}


	public function request_quote_output( $html, $args ){

		$args = wp_parse_args($args, [
			'class' => ''
		]);

		$shortcode = sprintf( '[wpforms id="%d"]', $this->wpform );

		return sprintf( '<div class="rey-wpforms-form %s">%s</div>', $args['class'], do_shortcode( $shortcode ) );
	}

	public function add_custom_content( $email ) {

		if ( ! ( isset($email->form_data) && absint( $email->form_data['id'] ) === absint($this->wpform) ) ) {
			return;
		}

		if( ! (isset($_REQUEST['rey-request-quote-product-id']) && $product_id = absint($_REQUEST['rey-request-quote-product-id'])) ){
			return;
		}

		$extra = 'Product ID: <strong>'. $product_id .'</strong>.<br>';

		$product = wc_get_product($product_id);
		$product_title = $product->get_title();

		if( $product->get_type() === 'variation' ){
			$product_title = $product->get_name();
		}

		if( $product && $psku = $product->get_sku() ){
			$extra .= 'Product SKU: <strong>'. $psku .'</strong>.<br>';
		}

		$extra .= 'Product: <a href="'. esc_url( get_the_permalink( $product_id ) ) .'"><strong>' . $product_title . '</strong></a>.<br>';

		if( isset($_REQUEST['rey-request-quote-variation-data']) && $variation_attributes = reycore__clean($_REQUEST['rey-request-quote-variation-data']) ){
			foreach ( (array) json_decode(wp_unslash($variation_attributes)) as $name => $value) {
				if( ! $value ) continue;
				$extra .= sprintf('%s: <strong>%s</strong>.<br>', strtoupper( $name ), strtoupper( $value ));
			}
		}

		$extra = apply_filters('reycore/woocommerce/request_quote_mail', $extra, $product_id);

		ob_start();
		$email->get_template_part( 'field', $email->get_template(), true );
		$field_item = ob_get_clean();

		$field_item = str_replace( '{field_name}', esc_html_x('Product data:', 'WPForms product data title in email.', 'rey-core'), $field_item );
		$field_item = str_replace( '{field_value}', $extra, $field_item );

		echo $field_item;

	}
}