72 lines
2.1 KiB
PHP
72 lines
2.1 KiB
PHP
<?php
|
|
|
|
class AR_Model_Viewer_Premium
|
|
{
|
|
public function localize_extras($jsArr, $settings)
|
|
{
|
|
$jsArr["arVariants"] = ["value" => $settings['ar_variants'], "name" => "ar_variants"];
|
|
$jsArr["wcVariants"] = $settings['wc_variants'];
|
|
$jsArr["plan"] = 'premium';
|
|
return $jsArr;
|
|
}
|
|
|
|
public function get_post_premium_settings($settings)
|
|
{
|
|
$index = 1;
|
|
foreach ($settings['ar_variants'] as $key => $variant) {
|
|
$settings['ar_variants'][$key]['display_order'] = $index++;
|
|
if (isset($settings['ar_variants'][$key]['modelSrcId'])) {
|
|
$variant_url = wp_get_attachment_url($settings['ar_variants'][$key]['modelSrcId']);
|
|
$settings['ar_variants'][$key]['modelSrc'] = !empty($variant_url) ? $variant_url : "";
|
|
}
|
|
|
|
$materials = isset($variant['materials']) ? $variant['materials'] : [];
|
|
foreach ($materials as $k => $m) {
|
|
if (isset($m['texture'])) {
|
|
$settings['ar_variants'][$key]['materials'][$k]['texture_url'] = wp_get_attachment_image_url($m['texture']);
|
|
}
|
|
}
|
|
}
|
|
return $settings;
|
|
}
|
|
|
|
|
|
public function premium_render_ar($html, $settings)
|
|
{
|
|
if (!empty($settings['ar_variants'])) {
|
|
$variants = '<select id="ar-variant-options">';
|
|
foreach ($settings['ar_variants'] as $key => $variant) {
|
|
$variants .= '<option value="' . $key . '">' . $variant['name'] . '</option>';
|
|
}
|
|
$variants .= '</select>';
|
|
$variants .= '<div id="ar-variant-desc"></div>';
|
|
$html .= $variants;
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
|
|
public function save_post_premium_settings($post_id, $current_settings)
|
|
{
|
|
if (isset($_POST['ar_variant'])) {
|
|
if (is_array($_POST['ar_variant'])) {
|
|
$variants = $_POST['ar_variant'];
|
|
$current_settings['ar_variants'] = $variants;
|
|
}
|
|
} else {
|
|
$current_settings['ar_variants'] = [];
|
|
$current_settings['wc_variants'] = [];
|
|
}
|
|
|
|
return $current_settings;
|
|
}
|
|
|
|
public function save_variation_premium_settings($variation_id, $i, $current_settings)
|
|
{
|
|
$custom_field = $_POST['_ar_variant_id'][$i];
|
|
if (isset($custom_field)) {
|
|
$current_settings['wc_variants'][$variation_id] = sanitize_text_field($custom_field);
|
|
}
|
|
return $current_settings;
|
|
}
|
|
}
|