95 Commits

Author SHA1 Message Date
174f702e3e Merge pull request 'dev' (#66) from dev into main
Reviewed-on: #66
2025-03-21 17:54:29 +03:00
f6f4bfa2ab reklama code insert 2025-03-21 17:53:06 +03:00
f625537b6f reklama code insert 2025-03-21 17:52:35 +03:00
794d5e810d reklama code insert 2025-03-21 16:58:12 +03:00
a5c0985093 reklama code insert 2025-03-21 16:54:43 +03:00
70b481480f reklama code insert 2025-03-21 16:53:40 +03:00
a37e009109 reklama code insert 2025-03-21 16:52:37 +03:00
191ceaca36 reklama code insert 2025-03-21 16:51:46 +03:00
53ec69d27c reklama code insert 2025-03-21 16:50:03 +03:00
26f29e4353 reklama code insert 2025-03-21 16:47:19 +03:00
e1f239d6ee reklama code insert 2025-03-21 16:44:30 +03:00
9cf25e37ed Merge pull request 'yandex code insert' (#65) from dev into main
Reviewed-on: #65
2025-03-21 16:41:05 +03:00
355abb1add yandex code insert 2025-03-21 16:40:27 +03:00
0c8db13341 Merge pull request 'dev' (#64) from dev into main
Reviewed-on: #64
2025-03-21 15:38:29 +03:00
a3795dd267 tik tok code insert 2025-03-21 15:37:40 +03:00
90ffcd090c tik tok code insert 2025-03-21 15:37:05 +03:00
e5575398a3 Merge pull request 'dev' (#63) from dev into main
Reviewed-on: #63
2025-03-11 11:01:01 +03:00
acb52aef73 Merge remote-tracking branch 'origin/dev' into dev 2025-03-11 10:59:50 +03:00
fa04e5275f google code insert 2025-03-11 10:59:39 +03:00
b31f99aa94 Merge pull request 'correct registration js metrics' (#62) from dev into main
Reviewed-on: #62
2025-03-05 15:04:55 +03:00
SBD
0288c05e2b correct registration js metrics 2025-03-05 15:03:41 +03:00
c5baa2d9ab Merge pull request 'pixel code replace' (#61) from dev into main
Reviewed-on: #61
2025-02-24 13:33:01 +03:00
9c96d8c253 pixel code replace 2025-02-24 13:31:54 +03:00
3aecf2eb08 Merge pull request '0.0.165 routes' (#60) from dev into main
Reviewed-on: #60
2025-02-18 08:37:26 +03:00
SBD
423394a9d9 0.0.165 routes 2025-02-17 22:53:58 +03:00
4c28c17088 Merge pull request '2.1.39 fix users_notify_by_result_search_matches' (#59) from dev into main
Reviewed-on: #59
2025-02-17 18:25:32 +03:00
SDE
3b0e1f6524 2.1.39 fix users_notify_by_result_search_matches 2025-02-17 18:22:23 +03:00
f376656937 Merge pull request 'dev' (#58) from dev into main
Reviewed-on: #58
2025-02-12 15:02:23 +03:00
c57eec05c9 pixel code replace 2025-02-12 15:01:47 +03:00
197f910b82 pixel code replace 2025-02-12 15:00:30 +03:00
a5cca5f23e Merge pull request 'pixel code replace' (#57) from dev into main
Reviewed-on: #57
2025-02-10 17:17:39 +03:00
a940f2ff0d pixel code replace 2025-02-10 17:17:09 +03:00
e454fd2343 Merge pull request 'pixel code replace' (#56) from dev into main
Reviewed-on: #56
2025-02-10 15:00:27 +03:00
66a1170221 pixel code replace 2025-02-10 14:59:53 +03:00
8a175ee357 Merge pull request 'pixel code replace' (#55) from dev into main
Reviewed-on: #55
2025-02-09 01:08:13 +03:00
5f403710d1 pixel code replace 2025-02-09 01:07:16 +03:00
6626840fa9 Merge pull request 'pixel code replace' (#54) from dev into main
Reviewed-on: #54
2025-02-07 11:22:43 +03:00
529fb3fc5d pixel code replace 2025-02-07 11:21:34 +03:00
SDE
d1c3e68d6d 2.1.31 check problem send mail 2025-02-03 12:38:50 +03:00
SDE
d816733b0d 2.1.30 check problem send mail 2025-02-03 11:18:53 +03:00
SDE
168ae345d6 2.1.29 check problem send mail 2025-02-03 11:02:42 +03:00
d071458032 Merge pull request 'facebook domain verification add' (#53) from dev into main
Reviewed-on: #53
2025-02-03 00:51:31 +03:00
cae627f0b0 facebook domain verification add 2025-02-03 00:49:56 +03:00
7102af7d2d Merge pull request 'facebook domain verification add' (#52) from dev into main
Reviewed-on: #52
2025-02-03 00:33:26 +03:00
5ff75a4a80 facebook domain verification add 2025-02-03 00:32:03 +03:00
495cc43246 Merge pull request 'facebook domain verification add' (#51) from dev into main
Reviewed-on: #51
2025-02-03 00:12:56 +03:00
80deab3c42 facebook domain verification add 2025-02-03 00:12:08 +03:00
360493e564 Merge pull request 'facebook domain verification add' (#50) from dev into main
Reviewed-on: #50
2025-01-29 09:46:44 +03:00
6030998018 facebook domain verification add 2025-01-29 09:45:18 +03:00
faac300903 Merge pull request 'facebook domain verification add' (#49) from dev into main
Reviewed-on: #49
2025-01-27 23:17:18 +03:00
abaff023cd facebook domain verification add 2025-01-27 23:16:40 +03:00
a6d7a8c8e0 Merge pull request 'meta pixel add' (#48) from dev into main
Reviewed-on: #48
2025-01-24 18:07:20 +03:00
4dbe424f84 meta pixel add 2025-01-24 18:05:48 +03:00
2f94bf20be Merge pull request 'telegram link fix' (#47) from dev into main
Reviewed-on: #47
2025-01-17 14:54:41 +03:00
7488a9f8c8 telegram link fix 2025-01-17 14:52:56 +03:00
ee1107c976 Merge pull request '2.1.23 fix send support mail' (#46) from dev into main
Reviewed-on: #46
2025-01-16 15:29:18 +03:00
SDE
b759ce2d5a 2.1.23 fix send support mail 2025-01-16 15:28:06 +03:00
b4c8ffe95d Merge pull request 'telegram link fix' (#45) from dev into main
Reviewed-on: #45
2024-12-13 16:42:28 +03:00
84c88ba406 telegram link fix 2024-12-13 16:41:40 +03:00
86e6a2acc1 Merge pull request 'TRI-303 correct texts mistakes' (#44) from dev into main
Reviewed-on: #44
2024-12-11 14:56:04 +03:00
b2f7612452 TRI-303 correct texts mistakes 2024-12-11 14:54:56 +03:00
432409b3d8 Merge pull request 'TRI-302 add yandex metrika and goals for buttons and urls for landings' (#43) from dev into main
Reviewed-on: #43
2024-12-09 12:21:54 +03:00
09769542f9 TRI-302 add yandex metrika and goals for buttons and urls for landings 2024-12-09 12:19:29 +03:00
fca75a30aa Merge pull request 'TRI-302 add yandex metrika for landings' (#42) from dev into main
Reviewed-on: #42
2024-12-07 16:23:34 +03:00
a90d7c06a9 TRI-302 add yandex metrika for landings 2024-12-07 16:22:23 +03:00
6e342ca021 Merge pull request '1.8.11 fix stat landings' (#41) from dev into main
Reviewed-on: #41
2024-12-05 14:03:47 +03:00
SDE
4ce12a5428 1.8.11 fix stat landings 2024-12-05 14:02:24 +03:00
d89619fe61 Merge pull request 'TRI-283: fix video2' (#40) from dev into main
Reviewed-on: #40
2024-12-04 15:02:39 +03:00
b0387362b5 Merge pull request 'TRI-283: fix video1' (#39) from dev into main
Reviewed-on: #39
2024-12-04 13:44:40 +03:00
c284c1a784 Merge pull request 'TRI-297 add facebook pixel' (#38) from dev into main
Reviewed-on: #38
2024-12-03 23:37:36 +03:00
a7dd676a76 Merge pull request 'dev' (#37) from dev into main
Reviewed-on: #37
2024-12-03 12:49:46 +03:00
dd4134f2d7 Merge pull request 'TRI-283: reload images' (#36) from dev into main
Reviewed-on: #36
2024-12-02 13:41:34 +03:00
c1398284c7 Merge pull request 'TRI-283: reload images + text edit' (#35) from dev into main
Reviewed-on: #35
2024-11-29 22:24:34 +03:00
a9b4fd95c3 Merge pull request 'dev' (#34) from dev into main
Reviewed-on: #34
2024-11-29 10:21:52 +03:00
0fe7aa189c Merge pull request 'TRI-283: fix nags' (#33) from dev into main
Reviewed-on: #33
2024-11-28 11:57:31 +03:00
9133bfd8fa Merge pull request 'dev' (#32) from dev into main
Reviewed-on: #32
2024-11-27 16:45:02 +03:00
aa1657bd10 Merge pull request 'dev' (#31) from dev into main
Reviewed-on: #31
2024-11-26 22:32:25 +03:00
10411dd714 Merge pull request 'dev' (#30) from dev into main
Reviewed-on: #30
2024-11-18 15:07:50 +03:00
4be3686d2b Merge pull request 'dev' (#29) from dev into main
Reviewed-on: #29
2024-11-14 14:41:27 +03:00
70e1fa2a10 Merge pull request '1.7.19 get_my_routes_ajax log fail' (#28) from dev into main
Reviewed-on: #28
2024-11-12 17:36:48 +03:00
3a14430cd5 Merge pull request 'dev' (#27) from dev into main
Reviewed-on: #27
2024-11-12 16:08:27 +03:00
73621de710 Merge pull request 'dev' (#26) from dev into main
Reviewed-on: #26
2024-11-12 13:10:14 +03:00
5cbae093e9 Merge pull request 'dev' (#25) from dev into main
Reviewed-on: #25
2024-11-11 07:39:53 +03:00
fdaa18c0e6 Merge pull request 'dev' (#24) from dev into main
Reviewed-on: #24
2024-11-06 17:30:10 +03:00
ff6ee93497 Merge pull request 'dev' (#23) from dev into main
Reviewed-on: #23
2024-11-03 23:44:45 +03:00
d62261066f Merge pull request 'dev' (#22) from dev into main
Reviewed-on: #22
2024-10-24 10:40:47 +03:00
2a852cbb51 Merge pull request 'TRI-274 replace password recovery text' (#21) from dev into main
Reviewed-on: #21
2024-10-23 13:35:45 +03:00
f561c32526 Merge pull request 'dev' (#20) from dev into main
Reviewed-on: #20
2024-10-22 17:41:12 +03:00
cd36747b5c Merge pull request 'dev' (#19) from dev into main
Reviewed-on: #19
2024-10-22 16:50:19 +03:00
d020bdf9d0 TRI-262 replace invocation in subscription mail template 2024-10-18 15:44:38 +03:00
cd323ab66c Merge pull request 'TRI-262 replace invocation in subscription mail template' (#18) from dev into main
Reviewed-on: #18
2024-10-18 00:47:14 +03:00
0ac236d2ff Merge pull request 'dev' (#17) from dev into main
Reviewed-on: #17
2024-10-17 18:20:26 +03:00
769a42ec8b Merge pull request 'dev' (#16) from dev into main
Reviewed-on: #16
2024-10-10 14:37:43 +03:00
60ff29b23f Merge pull request 'fix tiktok link' (#15) from dev into main
Reviewed-on: #15
2024-10-05 11:26:01 +03:00
15ff3d37fc Merge pull request 'dev' (#14) from dev into main
Reviewed-on: #14
2024-10-02 13:52:51 +03:00
20 changed files with 273 additions and 92 deletions

View File

@@ -203,6 +203,8 @@ def mailing_subscribe_ajax(request):
def send_message_ajax(request):
print('send_message_ajax')
if request.method != 'POST':
raise Http404
@@ -311,10 +313,18 @@ def send_message_ajax(request):
f'</p>'
}
print('render html for mail')
html = render_to_string('mail/m_request_offer.html', Dict, request)
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
mail_sets = get_mail_send_options()
opts = get_options_by_opt_types('support_email', only_vals=True)
print(f'options: {str(opts)}')
if opts and 'support_email' in opts:
to = [opts['support_email']]
else:
to = [mail_sets['sender_email']]
print(f'to: {str(to)}')
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,

View File

@@ -105,6 +105,7 @@ def admin_send_mail_by_SMTPlib(sets, subject, from_email, to, html_content, atta
def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_server, smtp_port, smtp_login, smtp_password,
attachments=None):
print('send_mail_by_SMTPlib')
to = to_init
# if not settings.prod_server:
# to = 'web@syncsystems.net'
@@ -123,7 +124,11 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
try:
# context = ssl.create_default_context()
mail_lib = smtplib.SMTP(smtp_server, smtp_port)
print(f'connect to mail server smtp_server={str(smtp_server)} smtp_port={str(smtp_port)}')
mail_lib = smtplib.SMTP(smtp_server, smtp_port, timeout=60)
print('connection established')
res = mail_lib.ehlo()
@@ -139,14 +144,18 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = mail_lib.esmtp_features['auth'] = 'LOGIN PLAIN'
# print('mail_lib.esmtp_features = {0}'.format(str(res)))
print('try to login')
res = mail_lib.login(smtp_login, smtp_password)
# print('mail_lib.login = {0}'.format(str(res)))
print('login')
res = None
if type(to) in (list, tuple):
if sets['sender_email'] in to:
to.remove(sets['sender_email'])
# if sets['sender_email'] in to:
# to.remove(sets['sender_email'])
if len(to) > 1:
to_str = u', '.join(to)
@@ -159,6 +168,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
to = []
to.append(to_str)
print(f'send mail to {str(to)}')
if type(subject) != str:
try:
subject = subject.decode('utf-8')
@@ -168,6 +179,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
except:
pass
print(f'add context')
msg = MIMEMultipart()
from email.headerregistry import Address
msg['From'] = from_email
@@ -192,13 +205,17 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = msg.attach(attachments)
# print('else attach file complete = {0}'.format(str(res)))
print(f'send mail')
res = mail_lib.sendmail(from_email, to, msg.as_string())
msg = mail_lib.quit()
# print('mail_lib.quit = {0}'.format(str(msg)))
except Exception as e:
msg = 'send_mail_by_SMTPlib error = {0}'.format(str(e))
import traceback
msg = (f'send_mail_by_SMTPlib error = {str(e)}\n<br>'
f'{str(traceback.format_exc())}')
print(msg)
try:
mail_lib.quit()

View File

@@ -1,6 +1,6 @@
import json
from django.http import HttpResponse, Http404, FileResponse
from django.http import HttpResponse, Http404, FileResponse, HttpResponseRedirect
from django.template import loader, RequestContext
from django.contrib.auth.decorators import login_required
@@ -15,6 +15,7 @@ from django.views.decorators.csrf import csrf_exempt
from webpush import send_user_notification
import json
from datetime import datetime, timedelta
from django.urls import reverse
def generate_routes(request, routes_count):
if (not request.user
@@ -73,7 +74,7 @@ def test_code(request):
from RoutesApp.search_matches import search_matches
from RoutesApp.models import Route
search_matches(Route.objects.filter(id=16))
search_matches(Route.objects.filter(id=17158))
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
# from RoutesApp.models import Route
@@ -248,6 +249,12 @@ def StaticPageView(request, url):
'route_form': RouteForm(),
'owner_type': 'mover'
})
elif url in ['landing_customer', 'landing_mover']:
raise Http404
# return HttpResponseRedirect(reverse('customer_landing_page'))
# elif url == 'landing_mover':
# return HttpResponseRedirect(reverse('mover_landing_page'))
# elif url == 'works':
# return WorksPage(request)
elif url in ['main']:

View File

@@ -30,6 +30,6 @@ class Admin_Route(Admin_Trans_BaseModel):
search_fields = [
'owner__first_name', 'owner__last_name', 'from_city__name', 'to_city__name', 'owner__email'
]
raw_id_fields = ['from_city', 'to_city']
raw_id_fields = ['from_city', 'to_city', 'owner']
admin.site.register(Route, Admin_Route)

View File

@@ -47,7 +47,7 @@ def send_push_message_for_found_matches_routes(route, data_Dict):
def send_mail_found_matches_routes(route, data_Dict):
def send_mail_found_matches_routes(route, matched_route, data_Dict):
print(f'send_mail_found_matches_routes to route id = {route.id}')
Dict = {
@@ -67,7 +67,9 @@ def send_mail_found_matches_routes(route, data_Dict):
from_email=mail_sets['sender_email'], to=to,
html_content=html
)
to = ['web@syncsystems.net']
subject = f'route matches {route.id} <> {matched_route.id} send to {route.owner.email}'
to = ['web@syncsystems.net', 'sa@a3-global.com']
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,
@@ -78,6 +80,56 @@ def send_mail_found_matches_routes(route, data_Dict):
return res
def user_notify_by_result_search_matches(route_for_send, founded_route, params):
log = ''
data_Dict = None
try:
data_Dict = get_Dict_for_send_msgs(params, founded_route.owner_type)
except Exception as e:
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route_for_send.owner, 'push уведомления'
):
try:
msg = send_push_message_for_found_matches_routes(route_for_send, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route_for_send.owner,
'уведомление на e-mail о появлении перевозчика по заданным критериям'
):
try:
msg = send_mail_found_matches_routes(route_for_send, founded_route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
print(msg)
log += msg
return log
def users_notify_by_result_search_matches(source_route, found_routes, params):
log = ''
log += user_notify_by_result_search_matches(source_route, found_routes[0], params)
for route in found_routes:
log += user_notify_by_result_search_matches(route, source_route, params)
return log
def search_matches(for_routes=None):
print('search_matches')
@@ -147,39 +199,9 @@ def search_matches(for_routes=None):
if found_routes:
msg = f'found routes for send messages = {found_routes.count()}'
data_Dict = None
try:
data_Dict = get_Dict_for_send_msgs(params, found_routes[0].owner_type)
except Exception as e:
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route.owner, 'push уведомления'
):
try:
msg = send_push_message_for_found_matches_routes(route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route.owner,
'уведомление на e-mail о появлении перевозчика по заданным критериям'
):
try:
msg = send_mail_found_matches_routes(route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
print(msg)
log += msg
log += users_notify_by_result_search_matches(route, found_routes, params)
except Exception as e:
msg = f'<br>\n! search_matches Error = {str(e)}'

View File

@@ -0,0 +1,14 @@
# Generated by Django 4.2.2 on 2025-02-17 17:48
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('SubscribesApp', '0004_alter_subscribe_bg_color_alter_subscribe_text_color'),
('SubscribesApp', '0007_subscribeoption_route_highlight_hours'),
]
operations = [
]

View File

@@ -1,5 +1,5 @@
User-agent: *
Disallow: /
Allow: /
Disallow: */admin/*
Host: dev.tripwb.com
Host: tripwb.com

View File

@@ -28,6 +28,7 @@ function SendLoginForm(el){
if(url === '/user_account/login/') {
localStorage.setItem('needed_fbq', true)
location.href = data.redirect_url//`/profile/page/dashboard/`
window.sessionStorage.removeItem('mailingSubscribeRequired')
window.sessionStorage.removeItem('email')

View File

@@ -36,26 +36,26 @@ function SendRegistrationForm(el, user_id){
window.sessionStorage.removeItem('mailingSubscribeRequired')
window.sessionStorage.removeItem('email')
// fbq('track', 'Contact');
fbq('track', 'Contact');
ttq.identify({
"email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
"phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
"external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
});
// ttq.identify({
// "email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
// "phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
// "external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
// });
ttq.track('CompleteRegistration', {
"contents": [
{
"content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
"content_type": "<content_type>", // string. Either product or product_group.
"content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
}
],
"value": "<content_value>", // number. Value of the order or items sold. Example: 100.
"currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
});
// ttq.track('CompleteRegistration', {
// "contents": [
// {
// "content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
// "content_type": "<content_type>", // string. Either product or product_group.
// "content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
// }
// ],
// "value": "<content_value>", // number. Value of the order or items sold. Example: 100.
// "currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
// });
@@ -87,5 +87,3 @@ function SendRegistrationForm(el, user_id){
}
});
}

View File

@@ -22,7 +22,7 @@
<a href="https://vk.com/club226251027" target="_blank"><img class="svg" src="/static/img/svg/vk.svg"></a>
<a href="https://www.tiktok.com/@tripwithbonus?_t=8qHingfQWNq" target="_blank"><img class="svg" src="/static/img/svg/tiktok.svg"></a>
<a href="https://youtube.com/@tripwb?si=oiNZrtiOqx6OePJv" target="_blank"><img class="svg" src="/static/img/svg/Youtube.svg"></a>
<a href="https://t.me/+XA6A8Ls7fYw2Yzli" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
<a href="https://t.me/tripWB" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
</div>
</div>
<div class="second-column">

View File

@@ -18,7 +18,7 @@
<span id="sub_title_static">{% trans "Быстро, без посредников, без ограничений" %}</span>
{% endif %}
{% if page.url == 'for_movers' %}
<span id="sub_title_static">{% trans "Общайся, перевози послылки и получай бонусы" %}</span>
<span id="sub_title_static">{% trans "Общайся, перевози посылки и получай бонусы" %}</span>
{% endif %}
<div class="button_container">

View File

@@ -94,5 +94,15 @@
<option value="last" {% if route_form.initial.sort == item.0 %} selected{% endif %}>{% translate "По последним" %}</option>
</select>
</div>
<div><!-- Yandex.RTB R-A-14631137-1 -->
<div id="yandex_rtb_R-A-14631137-1"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-14631137-1",
"renderTo": "yandex_rtb_R-A-14631137-1"
})
})
</script></div>
{#</div>#}

View File

@@ -649,7 +649,7 @@
<meta property="og:type" content="website">
<meta property="og:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta property="og:url" content="https://tripwb.com/ru/page/partners/">
<meta property="og:image" content="https://tripwb.com/static/img/png/finlogo.png">
<meta property="og:site_name" content="TWB">
@@ -657,7 +657,7 @@
<meta property="fb:app_id" content="tripwithbonus">
<meta name="twitter:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta name="twitter:card" content="summary">
<script type="application/ld+json">

View File

@@ -7,9 +7,6 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
{% endblock %}
{% block content %}
<!-- Meta Pixel Code -->
<script>
@@ -29,6 +26,44 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TikTok Pixel Code Start -->
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
ttq.load('CVE2FBRC77U60E3J820G');
ttq.page();
}(window, document, 'ttq');
</script>
<!-- TikTok Pixel Code End -->
{% endblock %}
{% block content %}
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
<h1 class="presentation__title">
@@ -184,7 +219,7 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -202,9 +237,9 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
<div class="h3">
{% translate "Хотите перевезти посылку и окупить стоимость дороги, топлива?" %}
</div>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<br/>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="benefits" id="benefits">
@@ -399,7 +434,7 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
<div class="subtitle">
{% translate "Зарегистрируйся на&nbsp;<a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и&nbsp;получи отклики от&nbsp;людей с&nbsp;посылками" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -482,7 +517,7 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
<div class="title">
{% translate "Размести свое объявление какую посылку ты можешь перевезти прямо сейчас " %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -503,7 +538,7 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
<div class="h3">
{% translate "Зарегистрируйся бесплатно прямо сейчас и начни размещать объявления о перевозки посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться" %}</a>
<br/>
</div>

View File

@@ -9,6 +9,8 @@
{% endblock %}
{% block content %}
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
<div class="top_block_static_wrapper_main">
<div class="top_block_static">

View File

@@ -7,9 +7,6 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
{% endblock %}
{% block content %}
<!-- Meta Pixel Code -->
<script>
@@ -29,6 +26,44 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TikTok Pixel Code Start -->
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
ttq.load('CVE2H93C77U83BE8I4U0');
ttq.page();
}(window, document, 'ttq');
</script>
<!-- TikTok Pixel Code End -->
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
{% endblock %}
{% block content %}
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
@@ -186,7 +221,7 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="use">
@@ -204,9 +239,9 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
<div class="h3">
{% translate "Нужно отправить посылку партнеру, родителям или знакомым?" %}
</div>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<br/>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="diff">
<div class="title">{% translate "Чем мы отличаемся от классических почтовых сервисов" %}</div>
@@ -412,7 +447,7 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
<div class="subtitle">
{% translate "Зарегистрируйся на <a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и получи запросы на перевозку твоей посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -489,11 +524,11 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
</div>
<div class="benefits__third">
<div class="benefits__item">
<h2>{% translate "Уведомления" %}</h2>
<h2>{% translate "Удобный поиск" %}</h2>
<p>{% translate "Можешь самостоятельно найти перевозчиков или разместить объявление на&nbsp;сайте." %}</p>
</div>
<div class="benefits__item">
<h2>{% translate "Удобный поиск" %}</h2>
<h2>{% translate "Уведомления" %}</h2>
<p>{% translate "Как только по&nbsp;твоему объявлению найдется перевозчик мы&nbsp;сообщим на&nbsp;E-mail." %}</p>
</div>
<div class="benefits__item">
@@ -552,7 +587,7 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
<div class="subtitle">
{% translate "Достаточно просто зайти на сайт, разместить объявление в пару кликов и дождаться откликов от попутчиков." %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="sore">
@@ -572,7 +607,7 @@ src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
<div class="h3">
{% translate "Зарегистрируйте бесплатно прямо сейчас и&nbsp;размести свое первое объявление об&nbsp;отправке посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться и разместить" %}</a>
<br/>
</div>

View File

@@ -5,7 +5,6 @@
{% block meta %}
<script src='{% static "js/authorization.js" %}'></script>
<script src='{% static "js/registration.js" %}'></script>
{% endblock %}
{% block content %}

View File

@@ -3,6 +3,7 @@
{% block meta %}
<script src='{% static "js/registration.js" %}'></script>
<script>fbq('track', 'Contact');</script>
{% endblock %}
{% block content %}
@@ -25,5 +26,6 @@ src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
{% include 'forms/f_registration.html' %}
{% endblock %}

View File

@@ -33,6 +33,27 @@
<script defer src='{% static "js/check_new_messages.js" %}'></script>
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1123814969330706');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<script>
if (localStorage.getItem("needed_fbq")){
fbq('track', 'Contact');
localStorage.removeItem("needed_fbq")
}
</script>
{% endblock %}

View File

@@ -17,6 +17,14 @@
{% webpush_header %}
<meta name="google-site-verification" content="4V4upJSK2_4MBrr5ZXjcCLw3bBwXc4_gsnKudJAaWqI" />
<meta name="yandex-verification" content="b8a976575e41fbbc" />
<meta name="google-adsense-account" content="ca-pub-3479005276839542">
<!-- Yandex.RTB -->
<script>window.yaContextCb=window.yaContextCb||[]</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3479005276839542"
crossorigin="anonymous"></script>
{% include "inter/meta_OpenGraph_Schema.html" %}