oont-contents/plugins/ar-model-viewer/inc/renderer/ar-model-premium.php
2025-02-08 15:10:23 +01:00

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;
}
}