<?php
add_action('wp_footer', 'inject_membership_rate_only');
function inject_membership_rate_only() {
if (!is_user_logged_in()) return;
$user = wp_get_current_user();
$membership = function_exists('pmpro_getMembershipLevelForUser')
? pmpro_getMembershipLevelForUser($user->ID)
: null;
// Get membership ID (if any)
$membership_id = $membership ? intval($membership->id) : 0;
?>
<script>
// Set user's membership ID in JS
window.currentUserMembershipId = <?php echo $membership_id; ?>;
const membershipRates = {
7: 40.00, // MONTHLY CLEANING
6: 34.50, // BI-WEEKLY CLEANING
5: 31.50, // WEEKLY CLEANING
8: 35.00 // HOME IRONING SERVICE
};
const membershipMultipliers = {
7: 0.85, // MONTHLY CLEANING
6: 0.75, // BI-WEEKLY CLEANING
5: 0.5, // WEEKLY CLEANING
8: 1 // HOME IRONING SERVICE
};
document.addEventListener("DOMContentLoaded", function () {
const rateInput = document.getElementById('input_7_68');
const multiplierInput = document.getElementById('input_7_26');
const totalInput = document.getElementById('input_7_37');
const checkboxContainer = document.getElementById('input_7_20');
if (!rateInput || !multiplierInput) {
console.warn("Required input fields not found.");
return;
}
const membershipId = window.currentUserMembershipId;
if (membershipRates.hasOwnProperty(membershipId)) {
const rate = membershipRates[membershipId];
const multiplier = membershipMultipliers[membershipId] || 0;
rateInput.value = rate;
multiplierInput.value = multiplier;
console.log(`💰 Membership ID: ${membershipId}, Rate: ${rate}, Multiplier: ${multiplier}`);
// Trigger change events
multiplierInput.dispatchEvent(new Event('change', { bubbles: true }));
} else {
rateInput.value = '';
multiplierInput.value = '0';
console.warn('⚠️ No matching membership ID found for rate/multiplier:', membershipId);
}
// Handle checkbox changes to update total
if (checkboxContainer && totalInput) {
const checkboxes = checkboxContainer.querySelectorAll('input[type="checkbox"]');
checkboxes.forEach(checkbox => {
checkbox.addEventListener('change', function () {
multiplierInput.dispatchEvent(new Event('change', { bubbles: true }));
totalInput.dispatchEvent(new Event('change', { bubbles: true }));
});
});
}
});
</script>
<?php
}