7 Commits

Author SHA1 Message Date
0d0cb65633 Add workflow to update version number on release
All checks were successful
Create Release / build (push) Successful in 2s
2025-04-22 20:28:17 +00:00
c392af46e7 Merge pull request 'Update for FW switching to sending Binary instead of raw html' (#3) from Fix-fw-binary into main
All checks were successful
Create Release / build (push) Successful in 3s
Reviewed-on: #3
2025-04-22 17:50:27 +00:00
1bdae9a815 Update for FW switching to sending Binary instead of raw html 2025-04-22 10:48:19 -07:00
be7db52eec Update DOM crawler to resolver PHP warning
All checks were successful
Create Release / build (push) Successful in 3s
2025-01-26 12:30:03 -08:00
jknapp
059cc94063 Merge pull request 'updating docs and settings for release' (#1) from update-documentation into main
All checks were successful
Create Release / build (push) Successful in 2s
Reviewed-on: CyberCoveLLC/fourth-wall-embed-wp#1
2025-01-11 03:58:05 +00:00
jknapp
a68c898422 Merge branch 'main' into update-documentation 2025-01-11 03:57:58 +00:00
faf1a4ec87 updating docs and settings for release 2025-01-10 19:57:13 -08:00
4 changed files with 110 additions and 5 deletions

View File

@@ -0,0 +1,49 @@
name: Update Plugin Version
on:
release:
types: [created, edited]
jobs:
update-version:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Get release tag
id: get_tag
run: echo "TAG=${GITEA_REF#refs/tags/}" >> $GITEA_ENV
- name: Update version in plugin file
run: |
# Replace version in main plugin file
sed -i "s/Version: .*/Version: ${{ env.TAG }}/" fw-store-embed.php
# Verify change
grep "Version:" fw-store-embed.php
- name: Commit changes
run: |
git config --local user.email "action@gitea.com"
git config --local user.name "Gitea Action"
git add fw-store-embed.php
git commit -m "Update version to ${{ env.TAG }}"
git push
- name: Create plugin zip
run: |
mkdir -p build
zip -r build/fourthwall-store-embed.zip . -x ".git/*" ".gitea/*" "build/*" "*.git*"
- name: Upload zip to release
uses: actions/upload-release-asset@v1
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
with:
upload_url: ${{ gitea.event.release.upload_url }}
asset_path: build/fourthwall-store-embed.zip
asset_name: fourthwall-store-embed.zip
asset_content_type: application/zip

View File

@@ -1,3 +1,12 @@
# fourth-wall-embed-wp
A WordPress Plugin to embed a fourth wall embed
A WordPress Plugin to embed a fourth wall embed.
### How to use the plugin
* Download the latest release from [releases](https://repo.anhonesthost.net/CyberCoveLLC/fourth-wall-embed-wp/releases)
* Upload the Plugin to WordPress
* In the WordPress Dashboard, Navigate to the Fourthwall settings page, and paste your store url.
* On the page you want have your store displayed, add the shortcode ```[fourthwall]```
This is an early release of the plugin, and if you can think of things that could be improved or find any bugs, please open an issue on the repository.

View File

@@ -64,6 +64,7 @@ class fourthwall_settings {
submit_button();
echo ' </form>' . "\n";
echo ' <div><p>To use the fourthwall Embed, use the shortcode [fourthwall]</p></div>';
echo '</div>' . "\n";
}

View File

@@ -1,12 +1,53 @@
<?php
function fwembed_parse_html($url = null) {
if ($url === null) {
if ($url === null) {
throw new ValueError("Missing URL");
}
$ch = curl_init();
// More complete browser-like headers
$headers = [
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1',
'Cache-Control: max-age=0'
];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0');
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Only if necessary for testing
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt'); // Store cookies
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt'); // Use cookies
$html_content = curl_exec($ch);
if (curl_errno($ch)) {
$error = curl_error($ch);
curl_close($ch);
return "Error fetching URL: " . $error;
}
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status_code == 403) {
curl_close($ch);
return "Access forbidden (403). The website may be blocking automated requests.";
}
curl_close($ch);
$html = null;
libxml_use_internal_errors(true);
$dom = new DOMDocument();
@$dom->loadHTML(file_get_contents($url));
@$dom->loadHTML(loadHTML5($html_content), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$dom->documentURI = $url;
$divs = $dom->getElementsByTagName('div');
foreach ($divs as $div) {
@@ -43,14 +84,19 @@ function fwembed_parse_html($url = null) {
$html = $html . '<div class="product-tile"><a class="product-link" target="_blank" href="' . $url . $linkHref . '">' . $productHTML . '</a></div>';
}
}
libxml_clear_errors();
return $html;
}
function loadHTML5($html) {
return '<!DOCTYPE html><html><body>' . $html . '</body></html>';
}
function fwembed_shortcode( $atts ) {
$options = get_option( 'fourthwall_settings_name' );
$value = isset( $options['fourth_url'] ) ? $options['fourth_url'] : 'https://latinosagainstspookyshit-shop.fourthwall.com';
$value = isset( $options['fourth_url'] ) ? $options['fourth_url'] : 'https://fourthwall.com';
$store_html = fwembed_parse_html($value);
$store_render = '<div class="fw-store-parent">' . PHP_EOL . $store_html . PHP_EOL . '</div>';
return $store_render;
}
add_shortcode( 'fourthwall', 'fwembed_shortcode' );
add_shortcode( 'fourthwall', 'fwembed_shortcode' );