HEX
Server: Apache/2.4.66 (Debian)
System: Linux 6dfabc3b2241 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User: (1000)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: //tmp/fix-vff-links.php
<?php
/**
 * Fix VFF page — add missing tab_link and subtab_link fields to block data.
 */

$page_id = 51;
$post = get_post($page_id);
$content = $post->post_content;

// Extract the donate-vff block JSON
preg_match('/<!-- wp:acf\/donate-vff ({.*?}) \/-->/', $content, $matches);
if (!$matches) {
    WP_CLI::error("Could not find donate-vff block in page $page_id");
}

$block = json_decode($matches[1], true);
$data = $block['data'];

// Helper
function add(&$data, $name, $key, $value) {
    $data[$name] = $value;
    $data["_$name"] = $key;
}

// Add tab links (ACF link fields stored as serialized arrays in block data)
$donate_link = serialize(['title' => 'Donate', 'url' => '/support-cae/donate/', 'target' => '']);
$wtg_link = serialize(['title' => 'The Different Ways to Give', 'url' => '/support-cae/', 'target' => '']);
add($data, 'vff_tabs_0_tab_link', 'field_donate_vff_tab_link', $donate_link);
add($data, 'vff_tabs_1_tab_link', 'field_donate_vff_tab_link', $wtg_link);

// Add subtab links
$general_link = serialize(['title' => 'General', 'url' => '/support-cae/donate/', 'target' => '']);
$vff_link = serialize(['title' => 'Vermont Farm Fund', 'url' => '/support-cae/donate/vermont-farm-fund/', 'target' => '']);
add($data, 'vff_subtabs_0_subtab_link', 'field_donate_vff_subtab_link', $general_link);
add($data, 'vff_subtabs_1_subtab_link', 'field_donate_vff_subtab_link', $vff_link);

// Also add method button links while we're here
$donate_now_link = serialize(['title' => 'Donate Now', 'url' => '#donate-online', 'target' => '']);
$daf_link = serialize(['title' => 'Donate Now', 'url' => 'https://www.dafdirect.org/DAFDirect/daflink?_dafdirect_settings=NTcxMjAxNjgzXzIxMTFfMTNjMTY0NzUtZDMyOC00YzNjLThhYTQtNzQ0MGY5OTQ1ODQy&designatedText=VmVybW9udCBGYXJtIEZ1bmQ=&amountValue=', 'target' => '_blank']);
$mail_link = serialize(['title' => 'Donate Now', 'url' => '#mail-check', 'target' => '']);
add($data, 'vff_donate_methods_0_method_button', 'field_donate_vff_method_button', $donate_now_link);
add($data, 'vff_donate_methods_1_method_button', 'field_donate_vff_method_button', $daf_link);
add($data, 'vff_donate_methods_2_method_button', 'field_donate_vff_method_button', $mail_link);

// Rebuild block
$block['data'] = $data;
$new_json = json_encode($block, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

// Replace in content
$new_content = str_replace($matches[0], "<!-- wp:acf/donate-vff $new_json /-->", $content);

wp_update_post([
    'ID' => $page_id,
    'post_content' => $new_content,
]);

WP_CLI::success("Added tab/subtab/method link fields to VFF block data");